Check out what’s new from Firebase@ Google I/O 2021, and join our alpha program for early access to the new Remote Config personalization feature. Learn more

Erste Schritte mit der Firebase-Authentifizierung in Unity

Sie können Firebase Authentication verwenden, um Benutzern zu ermöglichen, sich bei Ihrem Spiel mit einer oder mehreren Anmeldemethoden anzumelden, einschließlich E-Mail-Adresse und Kennwortanmeldung, und Verbundidentitätsanbietern wie Google-Anmeldung und Facebook-Anmeldung. In diesem Tutorial erfahren Sie, wie Sie Ihrem Spiel eine E-Mail-Adresse und ein Passwort hinzufügen, um mit Firebase Authentication zu beginnen.

Bevor Sie beginnen

Bevor Sie Firebase Authentication 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 Ihrem Unity-Projekt das Firebase Unity SDK (insbesondere FirebaseAuth.unitypackage ) 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 (beispielsweise laden Sie Firebase-Konfigurationsdateien von der Konsole herunter und verschieben sie dann in Ihr Unity-Projekt).

Registrieren Sie neue Benutzer

Erstellen Sie ein Formular, das es neuen Benutzern ermöglicht, sich mit ihrer E-Mail-Adresse und einem Passwort bei Ihrem Spiel zu registrieren. Wenn ein Benutzer das Formular CreateUserWithEmailAndPasswordAsync , validieren Sie die vom Benutzer angegebene E-Mail-Adresse und das Kennwort und übergeben Sie sie dann 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);
});

Vorhandene Benutzer anmelden

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

Um auf An- und Abmeldeereignisse zu reagieren, fügen Sie einen Ereignishandler an das globale Authentifizierungsobjekt an. Dieser Handler wird immer dann aufgerufen, wenn sich der Anmeldestatus des Benutzers ändert. Da der Handler erst ausgeführt wird, nachdem das Authentifizierungsobjekt vollständig initialisiert wurde und alle Netzwerkaufrufe abgeschlossen sind, 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: