Authentifizieren Sie sich bei Firebase mithilfe eines benutzerdefinierten Authentifizierungssystems

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

Bevor Sie beginnen

  1. Wenn Sie es noch nicht getan haben, befolgen Sie die Schritte im Leitfaden „Erste Schritte“ .
  2. Installieren und konfigurieren Sie das Firebase Admin SDK . Stellen Sie sicher, dass Sie das SDK mit den richtigen Anmeldeinformationen für Ihr Firebase-Projekt initialisieren .

Authentifizieren Sie sich mit Firebase

  1. Wenn sich Benutzer bei Ihrer App anmelden, senden Sie ihre Anmeldeinformationen (z. B. ihren Benutzernamen und ihr Passwort) an Ihren Authentifizierungsserver. Ihr Server überprüft die Anmeldeinformationen und erstellt, wenn sie gültig sind, ein benutzerdefiniertes Firebase-Token und sendet das Token an Ihre App zurück.

  2. Nachdem Sie das benutzerdefinierte Token von Ihrem Authentifizierungsserver erhalten haben, übergeben Sie es an signInWithCustomToken() , um den Benutzer anzumelden:

    try {
        final userCredential =
            await FirebaseAuth.instance.signInWithCustomToken(token);
        print("Sign-in successful.");
    } on FirebaseAuthException catch (e) {
        switch (e.code) {
            case "invalid-custom-token":
                print("The supplied token is not a Firebase custom auth token.");
                break;
            case "custom-token-mismatch":
                print("The supplied token is for a different Firebase project.");
                break;
            default:
                print("Unknown error.");
        }
    }
    

Nächste Schritte

Nachdem ein Benutzer ein neues Konto erstellt hat, wird dieses Konto als Teil Ihres Firebase-Projekts gespeichert und kann zur Identifizierung eines Benutzers in jeder App in Ihrem Projekt verwendet werden, unabhängig davon, welche Anmeldemethode der Benutzer verwendet hat.

In Ihren Apps können Sie die grundlegenden Profilinformationen des Benutzers aus dem User Objekt abrufen. Siehe Benutzer verwalten .

In Ihren Firebase-Echtzeitdatenbank- und Cloud-Speicher-Sicherheitsregeln können Sie die eindeutige Benutzer-ID des angemeldeten Benutzers aus der auth abrufen und damit steuern, auf welche Daten ein Benutzer zugreifen kann.

Sie können Benutzern erlauben, sich mit mehreren Authentifizierungsanbietern bei Ihrer App anzumelden, indem Sie die Anmeldeinformationen des Authentifizierungsanbieters mit einem vorhandenen Benutzerkonto verknüpfen .

Um einen Benutzer abzumelden, rufen Sie signOut() auf:

await FirebaseAuth.instance.signOut();