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

Unity를 사용하여 비밀번호 기반 계정을 사용하여 Firebase에 인증

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

Firebase 인증을 사용하면 사용자가 이메일 주소와 비밀번호를 사용하여 Firebase에 인증하고 앱의 비밀번호 기반 계정을 관리할 수 있습니다.

시작하기 전에

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

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

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

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

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

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

Firebase.Auth.FirebaseAuth 클래스에 액세스

FirebaseAuth 클래스는 모든 API 호출을 위한 게이트웨이입니다. FirebaseAuth.DefaultInstance 를 통해 액세스할 수 있습니다.
Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;

암호 기반 계정 만들기

비밀번호로 새 사용자 계정을 만들려면 앱의 로그인 코드에서 다음 단계를 완료하세요.

  1. 새 사용자가 앱의 가입 양식을 사용하여 가입할 때 새 계정의 비밀번호가 올바르게 입력되었고 복잡성 요구 사항을 충족하는지 확인하는 것과 같이 앱에 필요한 모든 새 계정 유효성 검사 단계를 완료하세요.
  2. FirebaseAuth.CreateUserWithEmailAndPassword 에 새 사용자의 이메일 주소와 비밀번호를 전달하여 새 계정을 만듭니다.
    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);
    });
    

이메일 주소와 비밀번호로 사용자 로그인

암호로 사용자를 로그인하는 단계는 새 계정을 만드는 단계와 유사합니다. 앱의 로그인 기능에서 다음을 수행합니다.

  1. 사용자가 앱에 로그인하면 사용자의 이메일 주소와 비밀번호를 FirebaseAuth.SignInWithEmailAndPassword 에 전달합니다.
    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);
    });
    
  2. 다른 워크플로처럼 자격 증명을 만들고 로그인할 수도 있습니다.
    Firebase.Auth.Credential credential =
        Firebase.Auth.EmailAuthProvider.GetCredential(email, password);
    auth.SignInWithCredentialAsync(credential).ContinueWith(task => {
      if (task.IsCanceled) {
        Debug.LogError("SignInWithCredentialAsync was canceled.");
        return;
      }
      if (task.IsFaulted) {
        Debug.LogError("SignInWithCredentialAsync encountered an error: " + task.Exception);
        return;
      }
    
      Firebase.Auth.FirebaseUser newUser = task.Result;
      Debug.LogFormat("User signed in successfully: {0} ({1})",
          newUser.DisplayName, newUser.UserId);
    });
    

다음 단계

사용자가 처음으로 로그인하면 새 사용자 계정이 생성되어 사용자가 로그인한 자격 증명(즉, 사용자 이름 및 암호, 전화 번호 또는 인증 공급자 정보)에 연결됩니다. 이 새 계정은 Firebase 프로젝트의 일부로 저장되며 사용자 로그인 방식에 관계없이 프로젝트의 모든 앱에서 사용자를 식별하는 데 사용할 수 있습니다.

  • 앱에서 Firebase.Auth.FirebaseUser 객체에서 사용자의 기본 프로필 정보를 가져올 수 있습니다.

    Firebase.Auth.FirebaseUser user = auth.CurrentUser;
    if (user != null) {
      string name = user.DisplayName;
      string email = user.Email;
      System.Uri photo_url = user.PhotoUrl;
      // The user's Id, unique to the Firebase project.
      // Do NOT use this value to authenticate with your backend server, if you
      // have one; use User.TokenAsync() instead.
      string uid = user.UserId;
    }
    
  • Firebase 실시간 데이터베이스 및 Cloud Storage 보안 규칙 에서 auth 변수에서 로그인한 사용자의 고유 사용자 ID를 가져와 사용자가 액세스할 수 있는 데이터를 제어하는 ​​데 사용할 수 있습니다.

인증 공급자 자격 증명을 기존 사용자 계정에 연결하여 사용자가 여러 인증 공급자를 사용하여 앱에 로그인하도록 허용할 수 있습니다.

사용자를 로그아웃하려면 SignOut() 을 호출하십시오.

auth.SignOut();