Możesz użyć Firebase Authentication, aby umożliwić użytkownikom logowanie się w grze za pomocą co najmniej jednej metody logowania, w tym logowania przy użyciu adresu e-mail i hasła oraz dostawców tożsamości sfederowanej, takich jak Logowanie Google i logowanie przez Facebooka. Z tego samouczka dowiesz się, jak zacząć korzystać z Firebase Authentication, dodając do gry logowanie za pomocą adresu e-mail i hasła.
Zanim zaczniesz
Zanim zaczniesz korzystać z Firebase Authentication, musisz:
Zarejestruj projekt Unity i skonfiguruj go tak, aby korzystał z Firebase.
Jeśli Twój projekt w Unity korzysta już z Firebase, jest on już zarejestrowany i skonfigurowany pod kątem Firebase.
Jeśli nie masz projektu Unity, możesz pobrać przykładową aplikację.
Dodaj do projektu Unity pakiet Firebase Unity SDK (a konkretnie
FirebaseAuth.unitypackage
).
Pamiętaj, że dodanie Firebase do projektu w Unity wymaga wykonania czynności zarówno w Firebasekonsoli, jak i w otwartym projekcie w Unity (np. pobierasz z konsoli pliki konfiguracyjne Firebase, a następnie przenosisz je do projektu w Unity).
Rejestrowanie nowych użytkowników
Utwórz formularz, który umożliwi nowym użytkownikom rejestrację w grze przy użyciu adresu e-mail i hasła. Gdy użytkownik wypełni formularz, sprawdź adres e-mail i hasło podane przez użytkownika, a następnie przekaż je do metody 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.AuthResult result = task.Result;
Debug.LogFormat("Firebase user created successfully: {0} ({1})",
result.User.DisplayName, result.User.UserId);
});
Logowanie dotychczasowych użytkowników
Utwórz formularz, który umożliwi zalogowanie się obecnym użytkownikom przy użyciu adresu e-mail i hasła. Gdy użytkownik wypełni formularz, wywołaj metodę 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.AuthResult result = task.Result;
Debug.LogFormat("User signed in successfully: {0} ({1})",
result.User.DisplayName, result.User.UserId);
});
Ustawianie modułu obsługi zdarzeń zmiany stanu uwierzytelniania i pobieranie danych użytkownika
Aby reagować na zdarzenia logowania i wylogowywania, dołącz do globalnego obiektu uwierzytelniania moduł obsługi zdarzeń. Ta funkcja obsługi jest wywoływana za każdym razem, gdy zmieni się stan logowania użytkownika. Procedura obsługi jest uruchamiana dopiero po pełnej inicjalizacji obiektu uwierzytelniania i zakończeniu wszystkich wywołań sieciowych, dlatego jest to najlepsze miejsce do uzyskiwania informacji o zalogowanym użytkowniku.
Zarejestruj moduł obsługi zdarzeń za pomocą pola StateChanged
obiektu FirebaseAuth
. Gdy użytkownik zaloguje się, w obsłudze zdarzeń możesz uzyskać informacje o nim.
Gdy ten obiekt zostanie wywołany przez Destroy
, automatycznie wywoła OnDestroy
. Usuń odniesienia do obiektu Auth w OnDestroy
.
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
&& auth.CurrentUser.IsValid();
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;
}
Dalsze kroki
Dowiedz się, jak dodać obsługę innych dostawców tożsamości i anonimowych kont gościa: