Aby umożliwić użytkownikom logowanie się w Twojej grze za pomocą Firebase Authentication, możesz użyć 1 lub więcej metod logowania, w tym logowanie za pomocą adresu e-mail i hasła, dostawców tożsamości sfederowanych, takich jak Logowanie przez Google i Logowanie przez Facebooka. Ten pokazuje, jak zacząć korzystać z usługi Firebase Authentication Zaloguj się w grze za pomocą adresu e-mail i hasła.
Zanim zaczniesz
Zanim będzie można użyć Firebase Authentication musisz:
Zarejestruj projekt Unity i skonfiguruj go pod kątem korzystania z Firebase.
Jeśli Twój projekt w Unity korzysta już z Firebase, zarejestrowane i skonfigurowane w Firebase.
Jeśli nie masz projektu Unity, możesz pobrać przykładowej aplikacji.
Dodaj pakiet SDK Firebase Unity (w szczególności
FirebaseAuth.unitypackage
) do swojego projektu w Unity.
Pamiętaj, że dodanie Firebase do projektu Unity wymaga wykonania zadań zarówno w Firebase i w otwartym projekcie Unity (np. pobierasz z konsoli pliki konfiguracyjne Firebase, do swojego projektu Unity).
Zarejestruj nowych użytkowników
Utwórz formularz, który pozwala nowym użytkownikom zarejestrować się w grze za pomocą adresu e-mail
adresu e-mail i hasła. Gdy użytkownik wypełni formularz, potwierdź adres e-mail
adresu i hasła podanych przez użytkownika, a następnie przekazać je
Metoda 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 istniejących użytkowników
Utwórz formularz, który umożliwia dotychczasowym użytkownikom logowanie się za pomocą ich adresów e-mail
i hasło. Gdy użytkownik wypełni formularz, wywołaj metodę
Metoda 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 zdarzenia zmiany stanu uwierzytelniania i pobieranie danych użytkownika
Aby odpowiadać na zdarzenia logowania i wylogowania, dołącz moduł obsługi zdarzeń do globalnego uwierzytelniania. Ten moduł obsługi jest wywoływany przy każdym logowaniu użytkownika zmian stanu. Ponieważ moduł obsługi działa dopiero po tym, jak obiekt uwierzytelniania i po zakończeniu wywołań sieciowych najlepiej jest miejsce, w którym można znaleźć informacje o zalogowanym użytkowniku.
Zarejestruj moduł obsługi zdarzeń za pomocą modułu StateChanged
obiektu FirebaseAuth
. Gdy użytkownik się zaloguje, możesz uzyskać informacje o nim
w module obsługi zdarzeń.
Na koniec, gdy ten obiekt wywoła funkcję Destroy
, zostanie on automatycznie wywołany
OnDestroy
Usuń odwołania do obiektu Auth w pliku 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 gości konta: