Google is committed to advancing racial equity for Black communities. See how.
Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

Erste Schritte mit der Firebase-Authentifizierung in C ++

Mithilfe der Firebase-Authentifizierung können Benutzer sich mit einer oder mehreren Anmeldemethoden, einschließlich E-Mail-Adresse und Kennwortanmeldung, sowie mit Verbundidentitätsanbietern wie Google-Anmeldung und Facebook-Anmeldung bei Ihrer App anmelden. In diesem Tutorial lernen Sie die Firebase-Authentifizierung kennen, indem Sie zeigen, wie Sie Ihrer App eine E-Mail-Adresse und ein Kennwort hinzufügen.

Verbinden Sie Ihr C ++ - Projekt mit Firebase

Bevor Sie die Firebase-Authentifizierung verwenden können , müssen Sie:

  • Registrieren Sie Ihr C ++ - Projekt und konfigurieren Sie es für die Verwendung von Firebase.

    Wenn Ihr C ++ - Projekt bereits Firebase verwendet, ist es bereits für Firebase registriert und konfiguriert.

  • Fügen Sie das Firebase C ++ SDK zu Ihrem C ++ - Projekt hinzu.

Beachten Sie, dass das Hinzufügen von Firebase zu Ihrem C ++ - Projekt Aufgaben sowohl in der Firebase-Konsole als auch in Ihrem geöffneten C ++ - Projekt umfasst (Sie laden beispielsweise Firebase-Konfigurationsdateien von der Konsole herunter und verschieben sie dann in Ihr C ++ - Projekt).

Neue Benutzer anmelden

Erstellen Sie ein Formular, mit dem sich neue Benutzer mit ihrer E-Mail-Adresse und einem Kennwort bei Ihrer App registrieren können. Wenn ein Benutzer das Formular CreateUserWithEmailAndPassword , CreateUserWithEmailAndPassword die vom Benutzer angegebene E-Mail-Adresse und das Kennwort und übergeben Sie sie an die CreateUserWithEmailAndPassword Methode:

firebase::Future<firebase::auth::User*> result =
    auth->CreateUserWithEmailAndPassword(email, password);

Sie können den Status des CreateUserWithEmailAndPasswordLastResult überprüfen, indem Sie entweder einen Rückruf im CreateUserWithEmailAndPasswordLastResult Future-Objekt registrieren oder, wenn Sie ein Spiel oder eine App mit einer regelmäßigen Aktualisierungsschleife schreiben, den Status in der Aktualisierungsschleife abfragen.

Beispiel: Verwenden einer Zukunft:

firebase::Future<firebase::auth::User*> result =
    auth->CreateUserWithEmailAndPasswordLastResult();

// The lambda has the same signature as the callback function.
result.OnCompletion(
    [](const firebase::Future<firebase::auth::User*>& result,
       void* user_data) {
      // `user_data` is the same as &my_program_context, below.
      // Note that we can't capture this value in the [] because std::function
      // is not supported by our minimum compiler spec (which is pre C++11).
      MyProgramContext* program_context =
          static_cast<MyProgramContext*>(user_data);

      // Process create user result...
      (void)program_context;
    },
    &my_program_context);

Um Polling zu verwenden, führen Sie in der Update-Schleife Ihres Spiels das folgende Beispiel aus:

firebase::Future<firebase::auth::User*> result =
    auth->CreateUserWithEmailAndPasswordLastResult();
if (result.status() == firebase::kFutureStatusComplete) {
  if (result.error() == firebase::auth::kAuthErrorNone) {
    firebase::auth::User* user = *result.result();
    printf("Create user succeeded for email %s\n", user->email().c_str());
  } else {
    printf("Created user failed with error '%s'\n", result.error_message());
  }
}

Melden Sie vorhandene Benutzer an

Erstellen Sie ein Formular, mit dem sich vorhandene Benutzer mit ihrer E-Mail-Adresse und ihrem Kennwort anmelden können. Wenn ein Benutzer das Formular SignInWithEmailAndPassword , rufen Sie die SignInWithEmailAndPassword Methode auf:

firebase::Future<firebase::auth::User*> result =
    auth->SignInWithEmailAndPassword(email, password);

Rufen Sie das Ergebnis des Anmeldevorgangs genauso ab, wie Sie das Anmeldeergebnis erhalten haben.

Legen Sie einen Listener für den Authentifizierungsstatus fest und rufen Sie Kontodaten ab

Fügen Sie dem globalen Authentifizierungsobjekt einen Listener hinzu, um auf Anmelde- und Abmeldeereignisse zu reagieren. Dieser Listener wird aufgerufen, wenn sich der Anmeldestatus des Benutzers ändert. Da der Listener erst ausgeführt wird, nachdem das Authentifizierungsobjekt vollständig initialisiert wurde und Netzwerkanrufe abgeschlossen wurden, ist dies der beste Ort, um Informationen über den angemeldeten Benutzer abzurufen.

Erstellen Sie den Listener, indem Sie die abstrakte Klasse firebase::auth::AuthStateListener implementieren. So erstellen Sie beispielsweise einen Listener, der Informationen über den Benutzer erhält, wenn sich ein Benutzer erfolgreich anmeldet:

class MyAuthStateListener : public firebase::auth::AuthStateListener {
 public:
  void OnAuthStateChanged(firebase::auth::Auth* auth) override {
    firebase::auth::User* user = auth->current_user();
    if (user != nullptr) {
      // User is signed in
      printf("OnAuthStateChanged: signed_in %s\n", user->uid().c_str());
      const std::string displayName = user->DisplayName();
      const std::string emailAddress = user->Email();
      const std::string photoUrl = user->PhotoUrl();
    } else {
      // User is signed out
      printf("OnAuthStateChanged: signed_out\n");
    }
    // ...
  }
};

Hängen Sie den Listener mit der AddAuthStateListener Methode des AddAuthStateListener firebase::auth::Auth Objekts an:

MyAuthStateListener state_change_listener;
auth->AddAuthStateListener(&state_change_listener);

Nächste Schritte

Erfahren Sie, wie Sie Unterstützung für andere Identitätsanbieter und anonyme Gastkonten hinzufügen: