Anonym mit JavaScript bei Firebase authentifizieren

Mit Firebase Authentication können Sie temporäre anonyme Konten erstellen und verwenden um sich bei Firebase zu authentifizieren. Mit diesen temporären anonymen Konten können Sie Nutzern, die sich noch nicht bei deiner App registriert haben, erlauben, mit geschützten Daten zu arbeiten durch Sicherheitsregeln. Wenn sich ein anonymer Nutzer für Ihre App registriert, können Sie ihre Anmeldedaten mit der anonymen Konto, damit sie weiter mit ihren geschützten Daten in für zukünftige Sitzungen.

Hinweis

  1. Fügen Sie Ihrem JavaScript-Projekt Firebase hinzu.
  2. Wenn Sie Ihre App noch nicht mit Ihrem Firebase-Projekt verknüpft haben, tun Sie dies in der Firebase Console.
  3. Aktivieren Sie die anonyme Authentifizierung:
    1. Öffnen Sie in der Firebase-Konsole den Abschnitt Auth.
    2. Aktivieren Sie auf der Seite Anmeldemethoden die Option Anonym Anmeldemethode aus.
    3. Optional: Wenn Sie Ihr Projekt auf Firebase Authentication with Identity Platform aktualisiert haben, können Sie die automatische Bereinigung aktivieren. Wann? werden anonyme Konten, die älter als 30 Tage sind, automatisch gelöscht. In Projekten mit aktivierter automatischer Bereinigung wird die anonyme Authentifizierung nicht nicht länger auf Nutzungslimits oder Abrechnungskontingente angerechnet werden. Weitere Informationen finden Sie unter Automatische Bereinigung:

Anonym bei Firebase authentifizieren

Wenn ein abgemeldeter Nutzer eine App-Funktion verwendet, für die eine Authentifizierung mit Firebase erforderlich ist, melden Sie ihn anonym an. Gehen Sie dazu so vor:

  1. Rufen Sie die Methode signInAnonymously auf:

    Web

    import { getAuth, signInAnonymously } from "firebase/auth";
    
    const auth = getAuth();
    signInAnonymously(auth)
      .then(() => {
        // Signed in..
      })
      .catch((error) => {
        const errorCode = error.code;
        const errorMessage = error.message;
        // ...
      });

    Web

    firebase.auth().signInAnonymously()
      .then(() => {
        // Signed in..
      })
      .catch((error) => {
        var errorCode = error.code;
        var errorMessage = error.message;
        // ...
      });
    Hier können Sie auch Fehler erkennen und beheben. Eine Liste der Fehlercodes finden Sie in der Referenzdokumentation zur Authentifizierung.
  2. Wenn die signInAnonymously-Methode ohne Fehler abgeschlossen wird, wird der im onAuthStateChanged registrierte Beobachter ausgelöst und Sie können die Kontodaten des anonymen Nutzers aus dem User-Objekt abrufen:

    Web

    import { getAuth, onAuthStateChanged } from "firebase/auth";
    
    const auth = getAuth();
    onAuthStateChanged(auth, (user) => {
      if (user) {
        // User is signed in, see docs for a list of available properties
        // https://firebase.google.com/docs/reference/js/auth.user
        const uid = user.uid;
        // ...
      } else {
        // User is signed out
        // ...
      }
    });

    Web

    firebase.auth().onAuthStateChanged((user) => {
      if (user) {
        // User is signed in, see docs for a list of available properties
        // https://firebase.google.com/docs/reference/js/v8/firebase.User
        var uid = user.uid;
        // ...
      } else {
        // User is signed out
        // ...
      }
    });

Anonymes Konto in ein dauerhaftes Konto umwandeln

Wenn sich ein anonymer Nutzer bei Ihrer App registriert, sollten Sie ihm erlauben, seine Arbeit mit dem neuen Konto fortsetzen. Beispiel: Sie möchten möglicherweise eine die Artikel, die die Nutzenden vor der Registrierung in den Einkaufswagen gelegt haben. im Einkaufswagen ihres neuen Kontos verfügbar sind. Führen Sie dazu folgende Schritte aus:

  1. Wenn sich der Nutzer registriert, schließen Sie den Anmeldevorgang für das Authentifizierungsanbieter bis zum Aufrufen einer der Auth.signInWith-Methoden. Rufe beispielsweise das Google-ID-Token, das Facebook-Zugriffstoken oder die E-Mail-Adresse und das Passwort des Nutzers ab.
  2. Rufen Sie eine AuthCredential für den neuen Authentifizierungsanbieter ab:

    Google Log-in

    Web

    import { GoogleAuthProvider } from "firebase/auth";
    
    const credential = GoogleAuthProvider.credential(
      googleUser.getAuthResponse().id_token);

    Web

    var credential = firebase.auth.GoogleAuthProvider.credential(
      googleUser.getAuthResponse().id_token);
    Facebook-Anmeldung

    Web

    import { FacebookAuthProvider } from "firebase/auth";
    
    const credential = FacebookAuthProvider.credential(
      response.authResponse.accessToken);

    Web

    var credential = firebase.auth.FacebookAuthProvider.credential(
      response.authResponse.accessToken);
    Anmeldung per E-Mail-Adresse und Passwort

    Web

    import { EmailAuthProvider } from "firebase/auth";
    
    const credential = EmailAuthProvider.credential(email, password);

    Web

    var credential = firebase.auth.EmailAuthProvider.credential(email, password);
  3. Übergeben Sie das AuthCredential-Objekt an das link-Methode:

    Web

    import { getAuth, linkWithCredential } from "firebase/auth";
    
    const auth = getAuth();
    linkWithCredential(auth.currentUser, credential)
      .then((usercred) => {
        const user = usercred.user;
        console.log("Anonymous account successfully upgraded", user);
      }).catch((error) => {
        console.log("Error upgrading anonymous account", error);
      });

    Web

    auth.currentUser.linkWithCredential(credential)
      .then((usercred) => {
        var user = usercred.user;
        console.log("Anonymous account successfully upgraded", user);
      }).catch((error) => {
        console.log("Error upgrading anonymous account", error);
      });

Wenn der Aufruf von link erfolgreich ist, kann das neue Konto des Nutzers Auf die Firebase-Daten des anonymen Kontos zugreifen

Automatische Bereinigung

Wenn Sie für Ihr Projekt ein Upgrade auf Firebase Authentication with Identity Platform durchgeführt haben, können Sie Aktivieren Sie die automatische Bereinigung in der Firebase-Konsole. Wenn Sie diese Funktion aktivieren, erlauben Sie Firebase, anonyme Konten, die älter als 30 Tage sind, automatisch zu löschen. In Projekten mit automatischem Clean-up aktiviert ist, wird die anonyme Authentifizierung nicht auf Nutzungslimits oder Abrechnungskontingente angerechnet.

  • Alle anonymen Konten, die nach der Aktivierung der automatischen Bereinigung erstellt wurden, werden möglicherweise automatisch werden 30 Tage nach der Erstellung gelöscht.
  • Bestehende anonyme Konten können nach 30 Tagen automatisch gelöscht werden. automatische Bereinigung aktivieren.
  • Wenn Sie die automatische Bereinigung deaktivieren, bleiben alle zum Löschen geplanten anonymen Konten erhalten zum Löschen vorgemerkt.
  • Wenn Sie ein Upgrade ausführen ein anonymes Konto erstellt, indem es mit einer beliebigen Anmeldemethode verknüpft wird, wird das Konto werden nicht automatisch gelöscht.

Wenn Sie wissen möchten, wie viele Nutzer betroffen sind, Ihr Projekt auf Firebase Authentication with Identity Platform aktualisiert haben, können Sie filtern nach is_anon in Cloud Logging:

Nächste Schritte

Da sich Nutzer jetzt mit Firebase authentifizieren können, können Sie ihren Zugriff auf Daten in Ihrer Firebase-Datenbank mithilfe von Firebase-Regeln steuern.