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 in Ihrer App registriert, können Sie seine Anmeldedaten mit dem anonymen Konto verknüpfen, damit er in zukünftigen Sitzungen weiterhin mit seinen geschützten Daten arbeiten kann.
Hinweis
- Fügen Sie Ihrem JavaScript-Projekt Firebase hinzu.
- Wenn Sie Ihre App noch nicht mit Ihrem Firebase-Projekt verknüpft haben, tun Sie dies in der Firebase Console.
- Anonyme Authentifizierung aktivieren:
- Öffnen Sie in der Firebase Console den Bereich Auth.
- Aktivieren Sie auf der Seite Anmeldemethoden die Anmeldemethode Anonym.
- 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, in denen die automatische Bereinigung aktiviert ist, wird die anonyme Authentifizierung nicht mehr auf Nutzungslimits oder Abrechnungskontingente angerechnet. 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: So melden Sie den Nutzer anonym an:
- 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; // ... });
- Wenn die Methode
signInAnonymously
ohne Fehler abgeschlossen wird, ist der inonAuthStateChanged
registrierte Beobachter wird ausgelöst und Sie können die Kontodaten des anonymen Nutzers aus demUser
-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 in Ihrer App registriert, können Sie ihm erlauben, seine Arbeit mit seinem neuen Konto fortzusetzen. Sie können beispielsweise die Artikel, die der Nutzer seinem Einkaufswagen hinzugefügt hat, bevor er sich registriert hat, im Einkaufswagen seines neuen Kontos verfügbar machen. Führen Sie dazu folgende Schritte aus:
- Wenn sich der Nutzer registriert, führe den Anmeldevorgang für den Authentifizierungsanbieter des Nutzers bis zum Aufruf einer der
Auth.signInWith
-Methoden durch, aber nicht bis dahin. Rufen Sie beispielsweise das Google-ID-Token des Nutzers ab, Facebook-Zugriffstoken oder E-Mail-Adresse und Passwort. 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);
Übergeben Sie das
AuthCredential
-Objekt an daslink
-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 war, 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, mit Firebase, um automatisch anonyme Konten zu löschen, die älter als 30 Tage sind. In Projekten, in denen die automatische Bereinigung 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 vor der Aktivierung dieser Funktion sehen möchten, wie viele Nutzer davon betroffen sind, und Sie Ihr Projekt auf Firebase Authentication with Identity Platform umgestellt haben, können Sie in Cloud Logging nach is_anon
filtern.
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.