Catch up on everthing we announced at this year's Firebase Summit. Learn more

Zacznij korzystać z uwierzytelniania Firebase w Unity

Możesz użyć uwierzytelniania Firebase, aby umożliwić użytkownikom logowanie się do Twojej gry przy użyciu co najmniej jednej metody logowania, w tym logowania za pomocą adresu e-mail i hasła oraz dostawców tożsamości federacyjnych, takich jak Logowanie przez Google i Logowanie przez Facebook. Ten samouczek umożliwia rozpoczęcie pracy z Uwierzytelnianiem Firebase, pokazując, jak dodać do gry adres e-mail i hasło logowania.

Zanim zaczniesz

Przed rozpoczęciem korzystania z uwierzytelniania Firebase , trzeba:

  • Zarejestruj swój projekt w Unity i skonfiguruj go do korzystania z Firebase.

    • Jeśli Twój projekt Unity korzysta już z Firebase, oznacza to, że jest już zarejestrowany i skonfigurowany dla Firebase.

    • Jeśli nie masz projektu Unity, można pobrać aplikację próbki .

  • Dodaj Firebase Unity SDK (konkretnie FirebaseAuth.unitypackage ) do projektu Unity.

Należy pamiętać, że dodanie Firebase do projektu Unity obejmuje zadania zarówno w konsoli Firebase iw otwartej projektu Unity (na przykład, można pobrać pliki konfiguracyjne Firebase z konsoli, a następnie przenieść je do swojego projektu Unity).

Zarejestruj nowych użytkowników

Utwórz formularz, który pozwoli nowym użytkownikom zarejestrować się w Twojej grze przy użyciu ich adresu e-mail i hasła. Gdy użytkownik wypełnia formularz, potwierdzić adres e-mail i hasło podane przez użytkownika, a następnie przekazać je do CreateUserWithEmailAndPasswordAsync metody:

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);
});

Zaloguj się istniejących użytkowników

Utwórz formularz, który umożliwi istniejącym użytkownikom logowanie się przy użyciu ich adresu e-mail i hasła. Gdy użytkownik wypełnia formularz, zadzwoń SignInWithEmailAndPasswordAsync metodę:

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);
});

Ustaw procedurę obsługi zdarzeń zmiany stanu uwierzytelniania i uzyskaj dane użytkownika

Aby odpowiedzieć na zdarzenia logowania i wylogowania, dołącz procedurę obsługi zdarzeń do obiektu uwierzytelniania globalnego. Ta procedura obsługi jest wywoływana za każdym razem, gdy zmienia się stan logowania użytkownika. Ponieważ program obsługi działa dopiero po pełnym zainicjowaniu obiektu uwierzytelniania i po zakończeniu wszelkich wywołań sieciowych, jest to najlepsze miejsce do uzyskania informacji o zalogowanym użytkowniku.

Zarejestruj procedurę obsługi zdarzeń przy użyciu FirebaseAuth obiektu StateChanged pole. Po pomyślnym zalogowaniu się użytkownika można uzyskać informacje o użytkowniku w programie obsługi zdarzeń.

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 ?? "";
    }
  }
}

Następne kroki

Dowiedz się, jak dodać obsługę innych dostawców tożsamości i anonimowych kont gości: