Anonym mit C++ mit Firebase authentifizieren

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 für Ihre App registriert, können Sie ihre Anmeldedaten mit der anonymen Konto, damit sie weiter mit ihren geschützten Daten in für zukünftige Sitzungen.

Hinweis

  1. Fügen Sie Firebase zu Ihrem Projekt.
  2. Wenn Sie Ihre App noch nicht mit Ihrem Firebase-Projekt verbunden haben, tun Sie dies über Firebase-Konsole
  3. Anonyme Authentifizierung aktivieren:
    1. Öffnen Sie in der Firebase-Konsole den Abschnitt Auth.
    2. Aktivieren Sie auf der Seite Anmeldemethoden die Anmeldemethode Anonym.
    3. Optional: Wenn Sie ein Upgrade für Ihr Projekt auf Firebase Authentication with Identity Platform können Sie die automatische Bereinigung aktivieren. Wann? werden anonyme Konten, die älter als 30 Tage sind, automatisch gelöscht. In Projekten mit aktivierter automatischer Bereinigung wird die anonyme Authentifizierung nicht nicht länger auf Nutzungslimits oder Abrechnungskontingente angerechnet werden. 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: So melden Sie den Nutzer anonym an:

Die Klasse Auth ist das Gateway für alle API-Aufrufe.
  1. Fügen Sie die Auth- und App-Headerdateien hinzu:
    #include "firebase/app.h"
    #include "firebase/auth.h"
  2. 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__)
  3. Erwerben Sie die Klasse „firebase::auth::Auth“ für Ihr Gerät „firebase::App“. Es gibt eine 1:1-Zuordnung zwischen App und Auth.
    firebase::auth::Auth* auth = firebase::auth::Auth::GetAuth(app);
  • Rufen Sie Auth::SignInAnonymously an.
    firebase::Future<firebase::auth::AuthResult> result =
        auth->SignInAnonymously();
  • Wenn Ihr Programm eine Update-Schleife hat, die regelmäßig ausgeführt wird (z. B. 30- oder 60-mal pro Sekunde), können Sie die Ergebnisse einmal pro Update mit 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());
      }
    }
    Wenn Ihr Programm ereignisgesteuert ist, einen Callback auf der Future
  • Umwandlung eines anonymen Kontos in ein dauerhaftes Konto

    Wenn sich ein anonymer Nutzer bei Ihrer App registriert, sollten Sie ihm erlauben, seine Arbeit mit dem neuen Konto fortsetzen. Beispiel: Sie möchten möglicherweise eine Artikel, die Nutzende vor der Registrierung in den Einkaufswagen gelegt haben im Einkaufswagen ihres neuen Kontos verfügbar sind. Führen Sie dazu folgende Schritte aus:

    1. Wenn sich der Nutzer registriert, schließen Sie den Anmeldevorgang für das Authentifizierungsanbieter bis zum Aufrufen einer der Auth::SignInWith-Methoden. Rufe beispielsweise das Google-ID-Token, das Facebook-Zugriffstoken oder die E-Mail-Adresse und das Passwort des Nutzers ab.
    2. Rufen Sie eine auth::Credential für den neuen Authentifizierungsanbieter ab:

      Google Log-in
      firebase::auth::Credential credential =
          firebase::auth::GoogleAuthProvider::GetCredential(google_id_token,
                                                            nullptr);
      Facebook-Anmeldung
      firebase::auth::Credential credential =
          firebase::auth::FacebookAuthProvider::GetCredential(access_token);
      Anmeldung mit E-Mail-Passwort
      firebase::auth::Credential credential =
          firebase::auth::EmailAuthProvider::GetCredential(email, password);
    3. Übergeben Sie das auth::Credential-Objekt an das LinkWithCredential-Methode:

      // 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 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, erlauben Sie Firebase, anonyme Konten, die älter als 30 Tage sind, automatisch zu löschen. In Projekten mit automatischem Clean-up 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 anonymen Konten, die zum Löschen geplant sind, weiterhin zum Löschen geplant.
    • Wenn Sie ein anonymes Konto „upgraden“, indem Sie es mit einer Anmeldemethode verknüpfen, wird es nicht automatisch gelöscht.

    Wenn Sie wissen möchten, wie viele Nutzer betroffen sind, Ihr Projekt auf Firebase Authentication with Identity Platform aktualisiert haben, können Sie filtern nach is_anon in Cloud Logging:

    Nächste Schritte

    Da sich Nutzer jetzt bei Firebase authentifizieren können, können Sie ihren Zugriff auf in Ihrer Firebase-Datenbank Firebase-Regeln