Catch up on everything we announced at this year's Firebase Summit. Learn more

Authentifizieren Sie sich bei Firebase mit einem benutzerdefinierten Authentifizierungssystem und Unity

Sie können Firebase Authentication in ein benutzerdefiniertes Authentifizierungssystem integrieren, indem Sie Ihren Authentifizierungsserver so ändern, dass benutzerdefinierte signierte Token erstellt werden, wenn sich ein Benutzer erfolgreich anmeldet. Ihre App empfängt dieses Token und verwendet es zur Authentifizierung bei Firebase.

Bevor Sie beginnen

  1. Bevor Sie können Firebase - Authentifizierung , müssen Sie:

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

    Finden Sie detaillierte Anweisungen für diese Ersteinrichtung Schritte in Hinzufügen Firebase zu Ihrem Unity - Projekt .

  2. Rufen Sie die Serverschlüssel Ihres Projekts ab:
    1. Gehen Sie auf die Dienstkonto Seite in Ihrer Projekteinstellung.
    2. Klicken Sie auf Erstellen eines neuen privaten Schlüssel auf der Unterseite des Firebase Admin SDK Abschnitt der Seite Dienstkonten.
    3. Das öffentliche/private Schlüsselpaar des neuen Dienstkontos wird automatisch auf Ihrem Computer gespeichert. Kopieren Sie diese Datei auf Ihren Authentifizierungsserver.

Mit Firebase authentifizieren

Die FirebaseAuth Klasse ist das Gateway für alle API - Aufrufe. Es ist zugänglich durch FirebaseAuth.DefaultInstance .
Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;

Rufen Sie Firebase.Auth.FirebaseAuth.SignInWithCustomTokenAsync mit dem Token von Ihrem Authentifizierungsserver.

  1. Wenn sich Benutzer bei Ihrer App anmelden, senden Sie ihre Anmeldeinformationen (z. B. ihren Benutzernamen und ihr Kennwort) an Ihren Authentifizierungsserver. Der Server überprüft die Anmeldeinformationen und gibt einen benutzerdefinierten Token , wenn sie gültig sind.
  2. Nachdem Sie den benutzerdefinierten Token von Ihrem Authentifizierungsserver empfangen, es passieren Firebase.Auth.FirebaseAuth.SignInWithCustomTokenAsync in dem Benutzer anmelden:
    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.FirebaseUser newUser = task.Result;
      Debug.LogFormat("User signed in successfully: {0} ({1})",
          newUser.DisplayName, newUser.UserId);
    });
    

Nächste Schritte

Nachdem sich ein Benutzer zum ersten Mal anmeldet, wird ein neues Benutzerkonto erstellt und mit den Anmeldeinformationen – d. h. Benutzername und Kennwort, Telefonnummer oder Authentifizierungsanbieterinformationen – verknüpft, mit denen sich der Benutzer angemeldet hat. Dieses neue Konto wird als Teil Ihres Firebase-Projekts gespeichert und kann verwendet werden, um einen Benutzer in jeder App in Ihrem Projekt zu identifizieren, unabhängig davon, wie sich der Benutzer anmeldet.

  • In Ihren Anwendungen können Sie die Benutzerprofilgrundinformationen aus dem bekommen Firebase.Auth.FirebaseUser Objekt:

    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 Ihrer Datenbank und Firebase Realtime Cloud Storage Sicherheitsregeln , können Sie die angemeldeten Nutzer die eindeutige Benutzer - ID aus der bekommen auth Variable, und es verwenden , um steuern kann ein Benutzer Zugriff , welche Daten.

Sie können Benutzer erlauben , durch mehrere Authentifizierungsanbieter anmelden, um Ihre App Verknüpfung Auth - Provider - Anmeldeinformationen zu einem vorhandenen Benutzerkonto.

Um einen Benutzer abzumelden, rufen SignOut() :

auth.SignOut();