시작하기 전에
Firebase 인증 을 사용하려면 먼저 다음을 수행해야 합니다.
- Firebase 프로젝트에 Unity 프로젝트를 등록합니다.
- Firebase Unity SDK (특히
FirebaseAuth.unitypackage
)를 Unity 프로젝트에 추가합니다.
Unity 프로젝트에 Firebase 추가 에서 이러한 초기 설정 단계에 대한 자세한 지침을 찾아보세요.
- 프로젝트의 서버 키를 가져옵니다.
- 프로젝트 설정에서 서비스 계정 페이지로 이동합니다.
- 서비스 계정 페이지의 Firebase Admin SDK 섹션 하단에서 새 개인 키 생성 을 클릭합니다.
- 새 서비스 계정의 공개/개인 키 쌍이 자동으로 컴퓨터에 저장됩니다. 이 파일을 인증 서버에 복사하십시오.
Firebase로 인증
FirebaseAuth
클래스는 모든 API 호출을 위한 게이트웨이입니다. FirebaseAuth.DefaultInstance 를 통해 액세스할 수 있습니다.Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
인증 서버의 토큰으로 Firebase.Auth.FirebaseAuth.SignInWithCustomTokenAsync
를 호출합니다.
- 사용자가 앱에 로그인할 때 로그인 자격 증명(예: 사용자 이름 및 비밀번호)을 인증 서버로 보냅니다. 서버는 자격 증명을 확인하고 유효한 경우 사용자 지정 토큰 을 반환합니다.
- 인증 서버에서 맞춤 토큰을 받은 후
Firebase.Auth.FirebaseAuth.SignInWithCustomTokenAsync
에 전달하여 사용자 로그인:auth.SignInWithCustomTokenAsync(custom_token).ContinueWith(task => { if (task.IsCanceled) { Debug.LogError("SignInWithCustomTokenAsync was canceled."); return; } if (task.IsFaulted) { Debug.LogError("SignInWithCustomTokenAsync 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();