Google is committed to advancing racial equity for Black communities. See how.
Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

Erste Schritte mit der Firebase-Authentifizierung in Unity

Sie können die Firebase-Authentifizierung verwenden, um Benutzern die Anmeldung bei Ihrem Spiel mithilfe einer oder mehrerer Anmeldemethoden zu ermöglichen, einschließlich E-Mail-Adresse und Kennwortanmeldung sowie von Anbietern von Verbundidentitäten wie Google-Anmeldung und Facebook-Anmeldung. In diesem Tutorial lernen Sie die Firebase-Authentifizierung kennen, indem Sie zeigen, wie Sie Ihrem Spiel eine E-Mail-Adresse und eine Kennwortanmeldung hinzufügen.

Bevor Sie beginnen

Bevor Sie die Firebase-Authentifizierung verwenden können , müssen Sie:

  • Registrieren Sie Ihr Unity-Projekt und konfigurieren Sie es für die Verwendung von Firebase.

    • Wenn Ihr Unity-Projekt bereits Firebase verwendet, ist es bereits für Firebase registriert und konfiguriert.

    • Wenn Sie kein Unity-Projekt haben, können Sie eine Beispiel-App herunterladen.

  • Fügen Sie das Firebase Unity SDK (insbesondere FirebaseAuth.unitypackage ) zu Ihrem Unity-Projekt hinzu.

Beachten Sie, dass das Hinzufügen von Firebase zu Ihrem Unity-Projekt Aufgaben sowohl in der Firebase-Konsole als auch in Ihrem geöffneten Unity-Projekt umfasst (Sie laden beispielsweise Firebase-Konfigurationsdateien von der Konsole herunter und verschieben sie dann in Ihr Unity-Projekt).

Neue Benutzer anmelden

Erstellen Sie ein Formular, mit dem sich neue Benutzer mit ihrer E-Mail-Adresse und einem Passwort bei Ihrem Spiel registrieren können. Wenn ein Benutzer das Formular CreateUserWithEmailAndPasswordAsync , CreateUserWithEmailAndPasswordAsync die vom Benutzer angegebene E-Mail-Adresse und das Kennwort und übergeben Sie sie an die CreateUserWithEmailAndPasswordAsync Methode:

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

Melden Sie vorhandene Benutzer an

Erstellen Sie ein Formular, mit dem sich vorhandene Benutzer mit ihrer E-Mail-Adresse und ihrem Kennwort anmelden können. Wenn ein Benutzer das Formular SignInWithEmailAndPasswordAsync , rufen Sie die SignInWithEmailAndPasswordAsync Methode auf:

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

Legen Sie einen Ereignishandler für die Änderung des Authentifizierungsstatus fest und rufen Sie Benutzerdaten ab

Fügen Sie dem globalen Authentifizierungsobjekt einen Ereignishandler hinzu, um auf Anmelde- und Abmeldeereignisse zu reagieren. Dieser Handler wird aufgerufen, wenn sich der Anmeldestatus des Benutzers ändert. Da der Handler erst ausgeführt wird, nachdem das Authentifizierungsobjekt vollständig initialisiert wurde und Netzwerkanrufe abgeschlossen wurden, ist er der beste Ort, um Informationen über den angemeldeten Benutzer abzurufen.

Registrieren Sie den Ereignishandler mithilfe des StateChanged Felds des FirebaseAuth Objekts. Wenn sich ein Benutzer erfolgreich anmeldet, können Sie im Ereignishandler Informationen über den Benutzer abrufen.

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

Nächste Schritte

Erfahren Sie, wie Sie Unterstützung für andere Identitätsanbieter und anonyme Gastkonten hinzufügen: