Google is committed to advancing racial equity for Black communities. See how.
Ta strona została przetłumaczona przez Cloud Translation API.
Switch to English

Zacznij korzystać z uwierzytelniania Firebase w Unity

Możesz użyć uwierzytelniania Firebase, aby umożliwić użytkownikom logowanie się do gry przy użyciu jednej lub kilku metod logowania, w tym logowania za pomocą adresu e-mail i hasła, a także dostawców tożsamości federacyjnych, takich jak Logowanie Google i Logowanie na Facebooku. Z tego samouczka dowiesz się, jak zacząć korzystać z uwierzytelniania Firebase, pokazując, jak dodać adres e-mail i hasło logowania do gry.

Zanim zaczniesz

Aby móc korzystać z uwierzytelniania Firebase , musisz:

  • Zarejestruj swój projekt 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żesz pobrać przykładową aplikację .

  • Dodaj Firebase Unity SDK (w szczególności FirebaseAuth.unitypackage ) do swojego projektu Unity.

Pamiętaj, że dodanie Firebase do projektu Unity obejmuje zadania zarówno w konsoli Firebase, jak iw otwartym projekcie Unity (na przykład pobierasz pliki konfiguracyjne Firebase z konsoli, a następnie przenosisz je do projektu Unity).

Zarejestruj nowych użytkowników

Utwórz formularz, który pozwoli nowym użytkownikom zarejestrować się w Twojej grze przy użyciu adresu e-mail i hasła. Gdy użytkownik wypełni formularz, sprawdź poprawność adresu e-mail i hasła podanego 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.FirebaseUser newUser = task.Result;
  Debug.LogFormat("Firebase user created successfully: {0} ({1})",
      newUser.DisplayName, newUser.UserId);
});

Zaloguj 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ł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.FirebaseUser newUser = task.Result;
  Debug.LogFormat("User signed in successfully: {0} ({1})",
      newUser.DisplayName, newUser.UserId);
});

Ustaw procedurę obsługi zdarzenia zmiany stanu uwierzytelniania i pobierz dane użytkownika

Aby odpowiedzieć na zdarzenia logowania i wylogowania, dołącz procedurę obsługi zdarzeń do globalnego obiektu uwierzytelniania. Ten program obsługi jest wywoływany za każdym razem, gdy zmienia się stan logowania użytkownika. Ponieważ program obsługi jest uruchamiany dopiero po całkowitym 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 module 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: