Erste Schritte mit der Firebase-Authentifizierung in Unity

Du kannst Firebase Authentication verwenden, um Nutzern zu erlauben, sich mit einem Konto in deinem Spiel anzumelden oder mehr Anmeldemethoden, einschließlich Anmeldung mit E-Mail-Adresse und Passwort, und Anbieter föderierter Identitäten wie Google Log-in und Facebook Login. Dieses Anleitung für den Einstieg in Firebase Authentication, indem Sie zeigen, wie Sie E-Mail-Adresse und Passwort für die Anmeldung in deinem Spiel.

Hinweis

Bevor Sie Firebase Authentication 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, registriert und für Firebase konfiguriert.

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

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

Das Hinzufügen von Firebase zu Ihrem Unity-Projekt umfasst Aufgaben sowohl in der FirebaseConsole als auch in Ihrem geöffneten Unity-Projekt. Sie laden beispielsweise Firebase-Konfigurationsdateien aus der Console herunter und verschieben sie dann in Ihr Unity-Projekt.

Neue Nutzer anmelden

Erstellen Sie ein Formular, mit dem sich neue Nutzer mit ihrer E-Mail-Adresse und einem Passwort in Ihrem Spiel registrieren können. Validieren Sie die E-Mail, wenn ein Nutzer das Formular ausfüllt. die vom Nutzer angegebene Adresse und das zugehörige Passwort 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.AuthResult result = task.Result;
  Debug.LogFormat("Firebase user created successfully: {0} ({1})",
      result.User.DisplayName, result.User.UserId);
});

Vorhandene Nutzer anmelden

Erstellen Sie ein Formular, über das sich bestehende Nutzer mit ihrer E-Mail-Adresse anmelden können und Passwort. Rufen Sie die Methode SignInWithEmailAndPasswordAsync auf, wenn ein Nutzer das Formular ausgefüllt hat:

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

Event-Handler für die Änderung des Authentifizierungsstatus festlegen und Nutzerdaten abrufen

Um auf An- und Abmeldeereignisse zu reagieren, hängen Sie einen Event-Handler an den globalen Authentifizierungsobjekt. Dieser Handler wird immer dann aufgerufen, wenn sich Statusänderungen. Da der Handler erst ausgeführt wird, nachdem das Authentifizierungsobjekt vollständig initialisiert ist. Nachdem Netzwerkaufrufe abgeschlossen sind, um Informationen zum angemeldeten Nutzer zu erhalten.

Event-Handler mit dem StateChanged des FirebaseAuth-Objekts registrieren ein. Wenn sich ein Nutzer erfolgreich angemeldet hat, können Sie Informationen über ihn abrufen. im Event-Handler.

Wenn schließlich Destroy für dieses Objekt aufgerufen wird, ruft es automatisch OnDestroy. Bereinigen Sie die Verweise 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

Weitere Informationen zum Hinzufügen der Unterstützung für andere Identitätsanbieter und anonyme Gäste Konten: