Sie können die Firebase-Authentifizierung 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 beschließt, sich bei Ihrer App anzumelden, können Sie seine Anmeldeinformationen mit dem anonymen Konto verknüpfen, damit er in zukünftigen Sitzungen weiterhin mit seinen geschützten Daten arbeiten kann.
Bevor Sie beginnen
- Fügen Sie Ihrem C++-Projekt Firebase hinzu .
- Wenn Sie Ihre App noch nicht mit Ihrem Firebase-Projekt verbunden haben, tun Sie dies über die Firebase-Konsole .
- Anonyme Authentifizierung aktivieren:
- Öffnen Sie in der Firebase-Konsole den Abschnitt Auth .
- Aktivieren Sie auf der Seite Anmeldemethoden die anonyme Anmeldemethode.
Authentifizieren Sie sich anonym bei Firebase
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:
DieAuth
-Klasse ist das Gateway für alle API-Aufrufe.- Fügen Sie die Auth- und App-Header-Dateien 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__)
- Erwerben Sie die Klasse
firebase::auth::Auth
für Ihrefirebase::App
. Es gibt eine Eins-zu-Eins-Zuordnung zwischenApp
undAuth
.firebase::auth::Auth* auth = firebase::auth::Auth::GetAuth(app);
Auth::SignInAnonymously
.firebase::Future<firebase::auth::User*> result = auth->SignInAnonymously();
Auth::SignInAnonymouslyLastResult
:firebase::Future<firebase::auth::User*> result = auth->SignInAnonymouslyLastResult(); if (result.status() == firebase::kFutureStatusComplete) { if (result.error() == firebase::auth::kAuthErrorNone) { firebase::auth::User* user = *result.result(); printf("Sign in succeeded for `%s`\n", user->display_name().c_str()); } else { printf("Sign in failed with error '%s'\n", result.error_message()); } }überprüfen. Wenn Ihr Programm ereignisgesteuert ist, können Sie dies bevorzugen um einen Rückruf auf der Future zu registrieren .
Wandeln Sie ein anonymes Konto in ein permanentes 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 seinem Einkaufswagen hinzugefügt hat, bevor er sich anmeldet, in seinem neuen Konto verfügbar machen Warenkorb des Kontos. Führen Sie dazu die folgenden Schritte aus:
- Wenn sich der Benutzer anmeldet, schließen Sie den Anmeldeablauf für den Authentifizierungsanbieter des Benutzers bis zum Aufrufen einer der
Auth::SignInWith
Methoden ab, schließen diese jedoch nicht ein. Rufen Sie beispielsweise das Google-ID-Token, das Facebook-Zugriffstoken oder die E-Mail-Adresse und das Passwort des Benutzers ab. Holen Sie sich ein
Google- Anmeldungauth::Credential
für den neuen Authentifizierungsanbieter:firebase::auth::Credential credential = firebase::auth::GoogleAuthProvider::GetCredential(google_id_token, nullptr);
Facebook -Anmeldungfirebase::auth::Credential credential = firebase::auth::FacebookAuthProvider::GetCredential(access_token);
E-Mail-Passwort-Anmeldungfirebase::auth::Credential credential = firebase::auth::EmailAuthProvider::GetCredential(email, password);
Übergeben Sie das
auth::Credential
-Objekt an dieLinkWithCredential
-Methode des Anmeldebenutzers:// Link the new credential to the currently active user. firebase::auth::User* current_user = auth->current_user(); firebase::Future<firebase::auth::User*> result = current_user->LinkWithCredential(credential);
Wenn der Aufruf von LinkWithCredential
erfolgreich ist, kann das neue Konto des Benutzers auf die Firebase-Daten des anonymen Kontos zugreifen.
Nächste Schritte
Da sich Benutzer jetzt bei Firebase authentifizieren können, können Sie ihren Zugriff auf Daten in Ihrer Firebase-Datenbank mithilfe von Firebase-Regeln steuern .