Mit Google Log-in und Unity authentifizieren

Sie können Ihre Nutzer mit ihren Google-Konten bei Firebase authentifizieren, indem Sie Google Sign-In in Ihre App einbinden.

Hinweis

Vor der Verwendung Firebase Authentication, sind folgende Schritte erforderlich:

  • 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.

Beachten Sie, dass das Hinzufügen von Firebase zu Ihrem Unity-Projekt sowohl Aufgaben im Firebase-Konsole und im geöffneten Unity-Projekt (Beispiel: Sie laden Firebase-Konfigurationsdateien aus der Console herunter und in Ihr Unity-Projekt importieren.

Auf die Klasse Firebase.Auth.FirebaseAuth zugreifen

Die Klasse FirebaseAuth ist das Gateway für alle API-Aufrufe. Sie kann über FirebaseAuth.DefaultInstance aufgerufen werden.
Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;

Mit Firebase authentifizieren

  1. Folgen Sie der Anleitung für Android und iOS+. , um ein ID-Token für die Google-Anmeldung zu erhalten.
  2. Tauschen Sie nach erfolgreicher Anmeldung das Zugriffstoken gegen ein Firebase-Anmeldedaten einrichten und mit Firebase bei Firebase authentifizieren Anmeldedaten:
    Firebase.Auth.Credential credential =
        Firebase.Auth.GoogleAuthProvider.GetCredential(googleIdToken, googleAccessToken);
    auth.SignInAndRetrieveDataWithCredentialAsync(credential).ContinueWith(task => {
      if (task.IsCanceled) {
        Debug.LogError("SignInAndRetrieveDataWithCredentialAsync was canceled.");
        return;
      }
      if (task.IsFaulted) {
        Debug.LogError("SignInAndRetrieveDataWithCredentialAsync 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);
    });
    

Nächste Schritte

Nachdem sich ein Nutzer zum ersten Mal angemeldet hat, wird ein neues Nutzerkonto erstellt und mit den Anmeldedaten verknüpft, d. h. mit dem Nutzernamen und Passwort, der Telefonnummer oder den Informationen zum Authentifizierungsanbieter, mit denen sich der Nutzer angemeldet hat. Dieses neue Konto wird als Teil Ihres Firebase-Projekts gespeichert und kann verwendet werden, um einen Nutzer in allen Apps in Ihrem Projekt zu identifizieren, unabhängig davon, wie er sich anmeldet.

  • In Ihren Apps können Sie die grundlegenden Profilinformationen des Nutzers über das Objekt Firebase.Auth.FirebaseUser abrufen:

    Firebase.Auth.FirebaseUser user = auth.CurrentUser;
    if (user != null) {
      string name = user.DisplayName;
      string email = user.Email;
      System.Uri photo_url = user.PhotoUrl;
      // The user's Id, unique to the Firebase project.
      // Do NOT use this value to authenticate with your backend server, if you
      // have one; use User.TokenAsync() instead.
      string uid = user.UserId;
    }
    
  • In Firebase Realtime Database und Cloud Storage Sicherheitsregeln können Sie die eindeutige Nutzer-ID des angemeldeten Nutzers aus der Variablen auth abrufen, und steuern, auf welche Daten ein Nutzer zugreifen kann.

Sie können Nutzern erlauben, sich über mehrere Authentifizierungsanbieter in Ihrer App anzumelden, indem Sie Anmeldedaten des Authentifizierungsanbieters mit einem vorhandenen Nutzerkonto verknüpfen.

Wenn Sie einen Nutzer abmelden möchten, rufen Sie SignOut() auf:

auth.SignOut();