Beginnen Sie mit der Firebase-Authentifizierung in Unity

Sie können die Firebase-Authentifizierung verwenden, um Benutzern zu erlauben, sich mit einer oder mehreren Anmeldemethoden bei Ihrem Spiel anzumelden, einschließlich der Anmeldung mit E-Mail-Adresse und Passwort sowie föderierten Identitätsanbietern wie Google-Anmeldung und Facebook-Anmeldung. Dieses Tutorial führt Sie zu den ersten Schritten mit der Firebase-Authentifizierung, indem es Ihnen zeigt, 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 Folgendes tun:

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

    • Wenn Ihr Unity-Projekt Firebase bereits 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).

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 ausfüllt, validieren Sie die vom Benutzer bereitgestellte E-Mail-Adresse und das Kennwort und übergeben Sie diese 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 vorhandene 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 die Änderung des Authentifizierungsstatus fest und rufen Sie Benutzerdaten ab

Um auf Anmelde- und Abmeldeereignisse zu reagieren, hängen Sie einen Ereignishandler an das globale Authentifizierungsobjekt an. Dieser Handler wird immer dann aufgerufen, wenn sich der Anmeldestatus des Benutzers ändert. Da der Handler nur ausgeführt wird, nachdem das Authentifizierungsobjekt vollständig initialisiert und alle Netzwerkaufrufe abgeschlossen wurden, ist dies 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 Informationen über den Benutzer im Ereignishandler abrufen.

Wenn dieses Objekt schließlich Destroy aufgerufen hat, wird es automatisch OnDestroy . 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: