Du kannst Firebase Authentication verwenden, um Nutzern zu erlauben, sich damit in deiner App anzumelden oder mehr Anmeldemethoden, einschließlich Anmeldung mit E-Mail-Adresse und Passwort, und Anbieter föderierter Identitäten wie Google Log-in und Facebook Login. Dieses Anleitung für den Einstieg in Firebase Authentication, indem Sie zeigen, wie Sie E-Mail-Adresse und Passwort für die Anmeldung in der App.
C++-Projekt mit Firebase verbinden
Bevor Sie Firebase Authentication verwenden können, müssen Sie Folgendes tun:
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 registriert und die für Firebase konfiguriert sind.
Fügen Sie Ihrem C++-Projekt das Firebase C++ SDK hinzu.
Beachten Sie, dass das Hinzufügen von Firebase zu Ihrem C++-Projekt sowohl Aufgaben im Firebase-Konsole und in Ihrem offenen C++-Projekt, z. B. wenn Sie Firebase-Konfigurationsdateien aus der Console und verschieben Sie sie dann in Ihr C++-Projekt.
Neue Nutzer anmelden
Erstellen Sie ein Formular, über das sich neue Nutzer mit ihrem
E-Mail-Adresse und ein Passwort. Wenn ein Nutzer das Formular ausfüllt, validieren Sie die
E-Mail-Adresse und Passwort, die der Nutzer angegeben hat, und geben Sie diese an den
CreateUserWithEmailAndPassword
-Methode:
firebase::Future<firebase::auth::AuthResult> result =
auth->CreateUserWithEmailAndPassword(email, password);
Sie können den Status der Kontoerstellung überprüfen, indem Sie sich entweder
einen Callback für das CreateUserWithEmailAndPasswordLastResult
-Future-Objekt oder
wenn Sie ein Spiel oder eine App
mit einer regelmäßigen Aktualisierungsschleife schreiben,
den Status in der Aktualisierungsschleife abfragen.
So verwenden Sie beispielsweise ein Future:
firebase::Future<firebase::auth::AuthResult> result =
auth->CreateUserWithEmailAndPasswordLastResult();
// The lambda has the same signature as the callback function.
result.OnCompletion(
[](const firebase::Future<firebase::auth::AuthResult>& 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);
Wenn Sie Umfragen verwenden möchten, gehen Sie in der Aktualisierungsschleife:
firebase::Future<firebase::auth::AuthResult> result =
auth->CreateUserWithEmailAndPasswordLastResult();
if (result.status() == firebase::kFutureStatusComplete) {
if (result.error() == firebase::auth::kAuthErrorNone) {
firebase::auth::AuthResult* auth_result = *result.result();
printf("Create user succeeded for email %s\n", auth_result.user.email().c_str());
} else {
printf("Created user failed with error '%s'\n", result.error_message());
}
}
Vorhandene Nutzer anmelden
Erstellen Sie ein Formular, über das sich bestehende Nutzer mit ihrer E-Mail-Adresse anmelden können
und Passwort. Rufen Sie die Methode SignInWithEmailAndPassword
auf, wenn ein Nutzer das Formular ausgefüllt hat:
firebase::Future<firebase::auth::AuthResult> result =
auth->SignInWithEmailAndPassword(email, password);
Rufen Sie das Ergebnis des Anmeldevorgangs auf die gleiche Weise ab wie das Ergebnis der Anmeldung.
Authentifizierungsstatus-Listener festlegen und Kontodaten abrufen
Um auf An- und Abmeldeereignisse zu reagieren, müssen Sie dem globalen Authentifizierungsobjekt. Dieser Listener wird aufgerufen, wenn sich der Anmeldestatus des Nutzers ändert. Da der Listener erst ausgeführt wird, nachdem das Authentifizierungsobjekt vollständig initialisiert ist. Nachdem Netzwerkaufrufe abgeschlossen sind, um Informationen zum angemeldeten Nutzer zu erhalten.
Listener durch Implementieren des firebase::auth::AuthStateListener
erstellen
abstrakte Klasse. Um beispielsweise einen Listener zu erstellen, der Informationen
für den Nutzer, wenn er sich erfolgreich angemeldet hat:
class MyAuthStateListener : public firebase::auth::AuthStateListener {
public:
void OnAuthStateChanged(firebase::auth::Auth* auth) override {
firebase::auth::User user = auth.current_user();
if (user.is_valid()) {
// 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 an das Objekt firebase::auth::Auth
an.
AddAuthStateListener
-Methode:
MyAuthStateListener state_change_listener;
auth->AddAuthStateListener(&state_change_listener);
Nächste Schritte
Weitere Informationen zum Hinzufügen der Unterstützung für andere Identitätsanbieter und anonyme Gäste Konten: