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

Authentifizieren Sie sich anonym bei Firebase mit JavaScript

Sie können Firebase Authentication verwenden, um temporäre anonyme Konten zu erstellen und zu verwenden, um sich bei Firebase zu authentifizieren. Diese temporären anonymen Konten können verwendet werden, um Benutzern, die sich noch nicht bei Ihrer App angemeldet haben, zu ermöglichen, mit Daten zu arbeiten, die durch Sicherheitsregeln geschützt sind. Wenn ein anonymer Benutzer zu Ihrer App , um sich entscheidet, können Sie ihre Anmelde-Link Anmeldeinformationen an das anonyme Konto , so dass sie auf der Arbeit mit den geschützten Daten in zukünftigen Sitzungen fortgesetzt werden kann.

Bevor Sie beginnen

  1. In Firebase zu Ihrem JavaScript - Projekt .
  2. Wenn Sie noch nicht Ihre App auf Ihr Projekt verbunden Firebase, tun Sie dies aus der Firebase Konsole .
  3. Anonyme Authentifizierung aktivieren:
    1. In der Firebase Konsole , öffnen Sie den Abschnitt Auth.
    2. Auf der Sign-in Methods Seite, aktivieren Sie die Anonymous-Anmeldung Methode.

Anonym bei Firebase authentifizieren

Wenn ein abgemeldeter Benutzer eine App-Funktion verwendet, die eine Authentifizierung bei Firebase erfordert, melden Sie den Benutzer anonym an, indem Sie die folgenden Schritte ausführen:

  1. Rufen Sie die signInAnonymously Methode:

    Webversion 9

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

    Webversion 8

    firebase.auth().signInAnonymously()
      .then(() => {
        // Signed in..
      })
      .catch((error) => {
        var errorCode = error.code;
        var errorMessage = error.message;
        // ...
      });
    Hier können Sie auch Fehler abfangen und behandeln. Eine Liste der Fehlercodes haben einen Blick auf die Auth Reference Docs .
  2. Wenn die signInAnonymously Verfahren abgeschlossen ist, ohne Fehler, der Beobachter in der registrierten onAuthStateChanged auslösen und Sie können die anonymen Benutzerkontodaten aus dem bekommen User

    Webversion 9

    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/firebase.User
        const uid = user.uid;
        // ...
      } else {
        // User is signed out
        // ...
      }
    });

    Webversion 8

    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/firebase.User
        var uid = user.uid;
        // ...
      } else {
        // User is signed out
        // ...
      }
    });

Wandeln Sie ein anonymes Konto in ein dauerhaftes Konto um

Wenn sich ein anonymer Benutzer bei Ihrer App anmeldet, möchten Sie ihm möglicherweise erlauben, seine Arbeit mit seinem neuen Konto fortzusetzen. Sie möchten beispielsweise die Artikel, die der Benutzer vor der Registrierung in seinen Warenkorb gelegt hat, in seinem neuen Konto verfügbar machen Warenkorb des Kontos. Führen Sie dazu die folgenden Schritte aus:

  1. Wenn sich der Benutzer anmeldet, füllen Sie das Anmelde-Flow für den Authentifizierungsanbieter des Benutzers bis zu, aber nicht einschließlich, einer der Aufruf Auth.signInWith Methoden. Rufen Sie beispielsweise das Google-ID-Token des Benutzers, das Facebook-Zugriffstoken oder die E-Mail-Adresse und das Passwort ab.
  2. Holen Sie sich einen AuthCredential für die neuen Authentifizierungsanbieter:

    Google-Anmeldung

    Webversion 9

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

    Webversion 8

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

    Webversion 9

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

    Webversion 8

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

    Webversion 9

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

    Webversion 8

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

    Webversion 9

    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);
      });

    Webversion 8

    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 , können Sie das neue Konto des Benutzers zuzugreifen die Firebase Daten über den anonymen Konto.

Nächste Schritte

Nun , da Benutzer mit Firebase authentifizieren können, können Sie ihren Zugang zu den Daten in Ihrer Firebase - Datenbank steuern Regeln Firebase .