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

Anonyme Authentifizierung bei Firebase mit C++

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 C ++ 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:

Die Auth - Klasse ist das Gateway für alle API - Aufrufe.
  1. Fügen Sie die Auth und App - Header - Dateien:
    #include "firebase/app.h"
    #include "firebase/auth.h"
    
  2. In Ihrem Initialisierungscode, erstellen Sie 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__)
    
  3. Erwerben Sie die firebase::auth::Auth - Klasse für Ihre firebase::App . Es gibt eine Eins-zu-Eins - Abbildung zwischen App und Auth .
    firebase::auth::Auth* auth = firebase::auth::Auth::GetAuth(app);
    
  • Rufen Sie Auth::SignInAnonymously .
    firebase::Future<firebase::auth::User*> result = auth->SignInAnonymously();
    
  • Wenn Ihr Programm ein Update - Schleife hat , dass läuft regelmäßig (etwa bei 30 oder 60 mal pro Sekunde), können Sie die Ergebnisse überprüfen einmal pro Update mit 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());
      }
    }
    
    Oder, wenn Ihr Programm ereignisgesteuert, können Sie es vorziehen um einen Rückruf über die Zukunft zu registrieren .
  • 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 auth::Credential für die neuen Authentifizierungsanbieter:

      Google Sign-In
      firebase::auth::Credential credential =
          firebase::auth::GoogleAuthProvider::GetCredential(google_id_token,
                                                            nullptr);
      
      Facebook Anmelden
      firebase::auth::Credential credential =
          firebase::auth::FacebookAuthProvider::GetCredential(access_token);
      
      E - Mail-Passwort-Anmeldung
      firebase::auth::Credential credential =
          firebase::auth::EmailAuthProvider::GetCredential(email, password);
      
    3. Übergeben Sie die auth::Credential - Objekt zum Anmelde-Benutzer LinkWithCredential Methode:

      // 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 , 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 .