Google은 흑인 공동체를 위한 인종적 평등을 추구하기 위해 노력하고 있습니다. 자세히 알아보기

Unity에서 Firebase 인증 시작하기

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

Firebase 인증을 사용하여 사용자가 이메일 주소 및 비밀번호 로그인을 비롯한 하나 이상의 로그인 방법과 Google 로그인 및 Facebook 로그인과 같은 제휴 ID 공급자를 사용하여 게임에 로그인하도록 허용할 수 있습니다. 이 튜토리얼은 이메일 주소와 비밀번호 로그인을 게임에 추가하는 방법을 보여줌으로써 Firebase 인증을 시작하는 방법을 안내합니다.

시작하기 전에

Firebase 인증 을 사용하려면 먼저 다음을 수행해야 합니다.

  • Unity 프로젝트를 등록하고 Firebase를 사용하도록 구성합니다.

    • Unity 프로젝트에서 이미 Firebase를 사용하고 있다면 이미 Firebase용으로 등록 및 구성된 것입니다.

    • Unity 프로젝트가 없는 경우 샘플 앱 을 다운로드할 수 있습니다.

  • Unity 프로젝트에 Firebase Unity SDK (특히 FirebaseAuth.unitypackage )를 추가합니다.

Unity 프로젝트에 Firebase를 추가하려면 Firebase 콘솔 과 열려 있는 Unity 프로젝트 모두에서 작업이 필요합니다(예: 콘솔에서 Firebase 구성 파일을 다운로드한 다음 Unity 프로젝트로 이동).

신규 사용자 등록

새 사용자가 이메일 주소와 암호를 사용하여 게임에 등록할 수 있는 양식을 만드십시오. 사용자가 양식을 작성하면 사용자가 제공한 전자 메일 주소와 암호의 유효성을 검사한 다음 CreateUserWithEmailAndPasswordAsync 메서드에 전달합니다.

auth.CreateUserWithEmailAndPasswordAsync(email, password).ContinueWith(task => {
  if (task.IsCanceled) {
    Debug.LogError("CreateUserWithEmailAndPasswordAsync was canceled.");
    return;
  }
  if (task.IsFaulted) {
    Debug.LogError("CreateUserWithEmailAndPasswordAsync encountered an error: " + task.Exception);
    return;
  }

  // Firebase user has been created.
  Firebase.Auth.FirebaseUser newUser = task.Result;
  Debug.LogFormat("Firebase user created successfully: {0} ({1})",
      newUser.DisplayName, newUser.UserId);
});

기존 사용자 로그인

기존 사용자가 이메일 주소와 암호를 사용하여 로그인할 수 있는 양식을 만듭니다. 사용자가 양식을 완료하면 SignInWithEmailAndPasswordAsync 메서드를 호출합니다.

auth.SignInWithEmailAndPasswordAsync(email, password).ContinueWith(task => {
  if (task.IsCanceled) {
    Debug.LogError("SignInWithEmailAndPasswordAsync was canceled.");
    return;
  }
  if (task.IsFaulted) {
    Debug.LogError("SignInWithEmailAndPasswordAsync encountered an error: " + task.Exception);
    return;
  }

  Firebase.Auth.FirebaseUser newUser = task.Result;
  Debug.LogFormat("User signed in successfully: {0} ({1})",
      newUser.DisplayName, newUser.UserId);
});

인증 상태 변경 이벤트 핸들러 설정 및 사용자 데이터 가져오기

로그인 및 로그아웃 이벤트에 응답하려면 전역 인증 개체에 이벤트 처리기를 연결합니다. 이 처리기는 사용자의 로그인 상태가 변경될 때마다 호출됩니다. 핸들러는 인증 개체가 완전히 초기화되고 네트워크 호출이 완료된 후에만 실행되기 때문에 로그인한 사용자에 대한 정보를 얻을 수 있는 가장 좋은 장소입니다.

FirebaseAuth 개체의 StateChanged 필드를 사용하여 이벤트 핸들러를 등록합니다. 사용자가 성공적으로 로그인하면 이벤트 핸들러에서 사용자에 대한 정보를 얻을 수 있습니다.

마지막으로 이 개체에 Destroy 가 호출되면 자동으로 OnDestroy 를 호출합니다. OnDestroy 에서 Auth 개체의 참조를 정리합니다.

void InitializeFirebase() {
  auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
  auth.StateChanged += AuthStateChanged;
  AuthStateChanged(this, null);
}

void AuthStateChanged(object sender, System.EventArgs eventArgs) {
  if (auth.CurrentUser != user) {
    bool signedIn = user != auth.CurrentUser && auth.CurrentUser != null;
    if (!signedIn && user != null) {
      DebugLog("Signed out " + user.UserId);
    }
    user = auth.CurrentUser;
    if (signedIn) {
      DebugLog("Signed in " + user.UserId);
      displayName = user.DisplayName ?? "";
      emailAddress = user.Email ?? "";
      photoUrl = user.PhotoUrl ?? "";
    }
  }
}

void OnDestroy() {
  auth.StateChanged -= AuthStateChanged;
  auth = null;
}

다음 단계

다른 ID 공급자 및 익명 게스트 계정에 대한 지원을 추가하는 방법에 대해 알아보십시오.