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 공급자 및 익명 게스트 계정에 대한 지원을 추가하는 방법에 대해 알아보십시오.