Beginnen Sie mit der Firebase-Authentifizierung in Unity

Sie können die Firebase-Authentifizierung verwenden, um Benutzern die Anmeldung bei Ihrem Spiel mit einer oder mehreren Anmeldemethoden zu ermöglichen, einschließlich E-Mail-Adresse und Passwort-Anmeldung sowie Verbundidentitätsanbietern wie Google Sign-in und Facebook Login. Dieses Tutorial erleichtert Ihnen den Einstieg in die Firebase-Authentifizierung, indem es Ihnen zeigt, wie Sie die Anmeldung per E-Mail-Adresse und Passwort zu Ihrem Spiel hinzufügen.

Bevor Sie beginnen

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

  • 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 offenen Unity-Projekt erfordert (Sie laden beispielsweise Firebase-Konfigurationsdateien von der Konsole herunter und verschieben sie dann in Ihr Unity-Projekt).

Melden Sie neue Benutzer an

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 ausfüllt, validieren Sie die vom Benutzer bereitgestellte E-Mail-Adresse und das Kennwort und übergeben Sie sie dann an die Methode 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);
});

Melden Sie bestehende Benutzer an

Erstellen Sie ein Formular, das es bestehenden Benutzern ermöglicht, sich mit ihrer E-Mail-Adresse und ihrem Passwort anzumelden. Wenn ein Benutzer das Formular ausfüllt, 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.AuthResult result = task.Result;
  Debug.LogFormat("User signed in successfully: {0} ({1})",
      result.User.DisplayName, result.User.UserId);
});

Legen Sie einen Ereignishandler für Authentifizierungsstatusänderungen fest und rufen Sie Benutzerdaten ab

Um auf Anmelde- 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.

Wenn für dieses Objekt schließlich Destroy aufgerufen wird, ruft es automatisch OnDestroy auf. Bereinigen Sie die Referenzen des Auth-Objekts in 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;
}

Nächste Schritte

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