Catch up on everthing we announced at this year's Firebase Summit. 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 können Firebase - Authentifizierung , 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 nicht über ein Unity - Projekt haben, können Sie eine Download - Beispielanwendung .

  • Fügen Sie die Firebase Unity SDK (genauer gesagt, FirebaseAuth.unitypackage ) , um Ihre Unity - Projekt.

Beachten Sie, dass das Hinzufügen Firebase zu Ihrer Unity Projektaufgabe beinhaltet sowohl in der Firebase - Konsole und in Ihrem geöffneten Projekt Unity (zum Beispiel downloaden Sie Config - Dateien Firebase aus der Konsole, dann in der Unity - Projekt bewegen).

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, bestätigt die E - Mail - Adresse und das Passwort durch den Benutzer zur Verfügung gestellt und sie dann zum Pass 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 ausfüllt, rufen Sie die SignInWithEmailAndPasswordAsync Methode:

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 Event - Handler die Verwendung FirebaseAuth Objekts StateChanged Feld. 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: