Sie können Firebase Authentication in ein benutzerdefiniertes Authentifizierungssystem einbinden, indem Sie Ihren Authentifizierungsserver so ändern, dass er benutzerdefinierte signierte Tokens erstellt, wenn sich ein Nutzer erfolgreich anmeldet. Ihre App erhält dieses Token und verwendet es zur Authentifizierung bei Firebase.
Hinweis
-
Bevor Sie Firebase Authentication, verwenden können, müssen Sie Folgendes tun:
- Registrieren Sie Ihr Unity-Projekt bei Ihrem Firebase-Projekt.
- Fügen Sie Ihrem Unity-Projekt das Firebase Unity SDK hinzu, insbesondere
FirebaseAuth.unitypackage.
Eine detaillierte Anleitung für diese ersten Einrichtungsschritte finden Sie unter Firebase zu einem Unity Projekt hinzufügen.
- Rufen Sie die Serverschlüssel Ihres Projekts ab:
-
Rufen Sie in der Firebase Konsole die
Einstellungen > Dienstkonten auf. - Klicken Sie unten im Bereich Firebase Admin SDK auf Neuen privaten Schlüssel generieren.
- Das öffentliche/private Schlüsselpaar des neuen Dienstkontos wird automatisch auf Ihrem Computer gespeichert. Kopieren Sie diese Datei auf Ihren Authentifizierungsserver.
-
Rufen Sie in der Firebase Konsole die
Mit Firebase authentifizieren
Die KlasseFirebaseAuth ist das Gateway für alle API-Aufrufe.
Sie ist über FirebaseAuth.DefaultInstance zugänglich.
Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
Rufen Sie Firebase.Auth.FirebaseAuth.SignInWithCustomTokenAsync mit dem Token von Ihrem Authentifizierungsserver auf.
- Wenn sich Nutzer in Ihrer App anmelden, senden Sie ihre Anmeldedaten (z. B. Nutzername und Passwort) an Ihren Authentifizierungsserver. Ihr Server prüft die Anmeldedaten und gibt ein benutzerdefiniertes Token zurück, wenn sie gültig sind.
- Nachdem Sie das benutzerdefinierte Token von Ihrem Authentifizierungsserver erhalten haben, übergeben Sie es an
Firebase.Auth.FirebaseAuth.SignInWithCustomTokenAsync, um den Nutzer anzumelden:auth.SignInWithCustomTokenAsync(custom_token).ContinueWith(task => { if (task.IsCanceled) { Debug.LogError("SignInWithCustomTokenAsync was canceled."); return; } if (task.IsFaulted) { Debug.LogError("SignInWithCustomTokenAsync 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
Wenn sich ein Nutzer zum ersten Mal anmeldet, wird ein neues Nutzerkonto erstellt und mit den Anmeldedaten verknüpft, mit denen sich der Nutzer angemeldet hat, z. B. Nutzername und Passwort, Telefonnummer oder Informationen zum Authentifizierungsanbieter. Dieses neue Konto wird als Teil Ihres Firebase-Projekts gespeichert und kann verwendet werden, um einen Nutzer in allen Apps Ihres Projekts zu identifizieren, unabhängig davon, wie sich der Nutzer anmeldet.
-
In Ihren Apps können Sie die grundlegenden Profilinformationen des Nutzers aus dem
Firebase.Auth.FirebaseUserObjekt 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 den Firebase Realtime Database und Cloud Storage Sicherheitsregeln können Sie die eindeutige Nutzer-ID des angemeldeten Nutzers aus der Variablen
authabrufen und damit steuern, auf welche Daten ein Nutzer zugreifen kann.
Rufen Sie
SignOut() auf, um einen Nutzer abzumelden:
auth.SignOut();