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 Nutzer, die sich noch nicht in Ihrer App registriert haben, mit Daten arbeiten, die durch Sicherheitsregeln geschützt sind. 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 C++ -Projekt Firebase hinzu.
- Wenn Sie Ihre App noch nicht mit Ihrem Firebase-Projekt verknüpft haben, tun Sie dies in der Firebase Console.
-
Aktivieren Sie die anonyme Authentifizierung:
- Rufen Sie in der Firebase Console Sicherheit > Authentifizierung auf.
- Aktivieren Sie auf dem Tab Anmeldemethode den Anmeldeanbieter Anonym
- Optional: Wenn Sie Ihr Projekt auf Firebase Authentication with Identity Platform aktualisiert haben, können Sie die automatische Bereinigung aktivieren. Wenn Sie diese Einstellung aktivieren, werden anonyme Konten älter als 30 Tage automatisch gelöscht. In Projekten, in denen die automatische Bereinigung aktiviert ist, wird die anonyme Authentifizierung nicht mehr auf die Nutzungslimits oder Abrechnungskontingente angerechnet. Weitere Informationen finden Sie unter Automatische Bereinigung.
Anonym mit Firebase authentifizieren
Wenn ein abgemeldeter Nutzer eine App-Funktion verwendet, für die eine Authentifizierung mit Firebase erforderlich ist, melden Sie den Nutzer anonym an. Führen Sie dazu die folgenden Schritte aus:
Die KlasseAuth ist das Gateway für alle API-Aufrufe.
- Fügen Sie die Headerdateien „Auth“ und „App“ hinzu:
#include "firebase/app.h" #include "firebase/auth.h"
- Erstellen Sie in Ihrem Initialisierungscode eine
firebase::App-Klasse.#if defined(__ANDROID__) firebase::App* app = firebase::App::Create(firebase::AppOptions(), my_jni_env, my_activity); #else firebase::App* app = firebase::App::Create(firebase::AppOptions()); #endif // defined(__ANDROID__)
- Rufen Sie die Klasse
firebase::auth::Authfür Ihrefirebase::Appab. Es gibt eine 1:1-Zuordnung zwischenAppundAuth.firebase::auth::Auth* auth = firebase::auth::Auth::GetAuth(app);
Auth::SignInAnonymously auf.
firebase::Future<firebase::auth::AuthResult> result = auth->SignInAnonymously();
Auth::SignInAnonymouslyLastResult prüfen:
firebase::Future<firebase::auth::AuthResult> result = auth->SignInAnonymouslyLastResult(); if (result.status() == firebase::kFutureStatusComplete) { if (result.error() == firebase::auth::kAuthErrorNone) { firebase::auth::AuthResult auth_result = *result.result(); printf("Sign in succeeded for `%s`\n", auth_result.user.display_name().c_str()); } else { printf("Sign in failed with error '%s'\n", result.error_message()); } }
Anonymes Konto in ein permanentes Konto umwandeln
Wenn sich ein anonymer Nutzer in Ihrer App registriert, möchten Sie ihm möglicherweise erlauben, mit seinem neuen Konto weiterzuarbeiten. Sie können beispielsweise die Artikel, die der Nutzer vor der Registrierung in seinen Einkaufswagen gelegt hat, im Einkaufswagen seines neuen Kontos verfügbar machen. Führen Sie dazu folgende Schritte aus:
- Wenn sich der Nutzer registriert, führen Sie den Anmeldevorgang für den Authentifizierungsanbieter des Nutzers bis zum Aufruf einer der
Auth::SignInWithMethoden durch. Rufen Sie beispielsweise das Google-ID-Token des Nutzers ab, Facebook-Zugriffstoken oder die E-Mail-Adresse und das Passwort. Rufen Sie
Google Log-inauth::Credentialfür den neuen Authentifizierungsanbieter ab: Facebook-Anmeldungfirebase::auth::Credential credential = firebase::auth::GoogleAuthProvider::GetCredential(google_id_token, nullptr);
Anmeldung mit E-Mail-Adresse und Passwortfirebase::auth::Credential credential = firebase::auth::FacebookAuthProvider::GetCredential(access_token);
firebase::auth::Credential credential = firebase::auth::EmailAuthProvider::GetCredential(email, password);
Übergeben Sie das
auth::CredentialObjekt an dieLinkWithCredentialMethode des angemeldeten Nutzers:// Link the new credential to the currently active user. firebase::auth::User current_user = auth->current_user(); firebase::Future<firebase::auth::AuthResult> result = current_user.LinkWithCredential(credential);
Wenn der Aufruf von LinkWithCredential erfolgreich ist, kann das neue Konto des Nutzers auf die Firebase-Daten des anonymen Kontos zugreifen.
Automatische Bereinigung
Wenn Sie Ihr Projekt auf Firebase Authentication with Identity Platform aktualisiert haben, können Sie die automatische Bereinigung in der Firebase Console aktivieren. Wenn Sie diese Funktion aktivieren, kann Firebase anonyme Konten, die älter als 30 Tage sind, automatisch löschen. In Projekten, in denen die automatische Bereinigung aktiviert ist, wird die anonyme Authentifizierung nicht auf die Nutzungslimits oder Abrechnungskontingente angerechnet.
- Alle anonymen Konten, die nach der Aktivierung der automatischen Bereinigung erstellt wurden, können jederzeit nach 30 Tagen nach der Erstellung automatisch gelöscht werden.
- Vorhandene anonyme Konten können 30 Tage nach der Aktivierung der automatischen Bereinigung automatisch gelöscht werden.
- Wenn Sie die automatische Bereinigung deaktivieren, bleiben alle anonymen Konten, die zum Löschen geplant sind, weiterhin zum Löschen geplant.
- Wenn Sie ein anonymes Konto "aktualisieren", indem Sie es mit einer Anmeldemethode verknüpfen, wird es nicht automatisch gelöscht.
Wenn Sie sehen möchten, wie viele Nutzer betroffen sind, bevor Sie diese Funktion aktivieren, und Sie Ihr Projekt auf Firebase Authentication with Identity Platform aktualisiert haben, können Sie in Cloud
Logging nach
is_anon filtern.
Nächste Schritte
Nachdem sich Nutzer bei Firebase authentifizieren können, können Sie ihren Zugriff auf Daten in Ihrer Firebase-Datenbank mit Firebase-Regelnsteuern.