Nutzer erstellen
Sie haben vier Möglichkeiten, einen neuen Nutzer in Ihrem Firebase-Projekt zu erstellen:
- Rufen Sie die Methode
createUserWithEmailAndPassword()
auf. - Melden Sie einen Nutzer zum ersten Mal mit einem Anbieter für föderierte Identitäten an. z. B. Google Log-in, Facebook Log-in oder Apple.
Sie können neue passwortauthentifizierte Nutzer auch in der Firebase Console auf der Seite „Nutzer“ im Abschnitt „Authentifizierung“ erstellen.
Nutzerprofil abrufen
Verwenden Sie die Properties von User
, um die Profilinformationen eines Nutzers abzurufen. Es gibt drei Möglichkeiten, ein User
-Objekt für den aktuellen Nutzer abzurufen:
Die Streams
authStateChanges
,idTokenChanges
unduserChanges
: deine Listener erhalten die aktuelleUser
bzw.null
, wenn kein Nutzer authentifiziert:FirebaseAuth.instance .authStateChanges() .listen((User? user) { if (user != null) { print(user.uid); } });
Beim Start der App wird nach den Nutzeranmeldedaten (falls vorhanden) ein Ereignis ausgelöst. lokaler Speicher wiederhergestellt, was bedeutet, dass Ihre Hörer wird aufgerufen, wenn der Nutzerstatus initialisiert wird. Wenn die Authentifizierung wird ein neues Ereignis mit dem aktualisierten Nutzerstatus ausgelöst.
Wenn Sie den Authentifizierungsstatus beobachten, können Sie eine Benutzeroberfläche erstellen, die auf diese Änderungen reagiert.
Das von der Authentifizierung zurückgegebene
UserCredential
-Objekt (signIn
-) Methoden: DasUserCredential
-Objekt hat die Eigenschaftuser
mit dem aktuellenUser
:final userCredential = await FirebaseAuth.instance.signInWithCredential(credential); final user = userCredential.user; print(user?.uid);
Das Attribut
currentUser
der InstanzFirebaseAuth
: Wenn Sie sicher sind, dass der Nutzer derzeit angemeldet ist, können Sie über das AttributcurrentUser
auf dieUser
zugreifen:if (FirebaseAuth.instance.currentUser != null) { print(FirebaseAuth.instance.currentUser?.uid); }
currentUser
kann aus zwei Gründennull
sein:- Der Nutzer ist nicht angemeldet.
- Die Initialisierung des auth-Objekts ist noch nicht abgeschlossen. Wenn du einen Listener verwendest, um den Anmeldestatus des Nutzers im Blick zu behalten, musst du diesen Fall nicht behandeln.
Anbieterspezifische Profilinformationen eines Nutzers abrufen
Wenn Sie die Profilinformationen von den mit einem
verwenden Sie das Attribut providerData
. Beispiel:
if (user != null) {
for (final providerProfile in user.providerData) {
// ID of the provider (google.com, apple.com, etc.)
final provider = providerProfile.providerId;
// UID specific to the provider
final uid = providerProfile.uid;
// Name, email address, and profile photo URL
final name = providerProfile.displayName;
final emailAddress = providerProfile.email;
final profilePhoto = providerProfile.photoURL;
}
}
Nutzerprofil aktualisieren
Sie können die grundlegenden Profilinformationen eines Nutzers aktualisieren, also den Anzeigenamen des Nutzers
und Profilfotos mithilfe der update
-Methoden. Beispiel:
await user?.updateDisplayName("Jane Q. User");
await user?.updatePhotoURL("https://example.com/jane-q-user/profile.jpg");
E-Mail-Adresse eines Nutzers festlegen
Sie können die E-Mail-Adresse eines Nutzers mit der Methode updateEmail()
festlegen. Beispiel:
await user?.updateEmail("janeq@example.com");
Nutzer eine Bestätigungs-E-Mail senden
Mit der Methode sendEmailVerification()
können Sie einem Nutzer eine E-Mail zur Bestätigung der Adresse senden. Beispiel:
await user?.sendEmailVerification();
Sie können die E-Mail-Vorlage, die im Abschnitt „Authentifizierung“ der Firebase Console verwendet wird, auf der Seite „E-Mail-Vorlagen“ anpassen. Weitere Informationen finden Sie unter E-Mail-Vorlagen in Firebase-Hilfe.
Es ist auch möglich, den Status über eine Continue-URL zu übergeben, um beim Senden einer Bestätigungs-E-Mail zur App zurückzuleiten.
Sie können die Bestätigungs-E-Mail auch lokalisieren, indem Sie die Sprache auf der Auth-Instanz, bevor Sie die E-Mail senden. Beispiel:
await FirebaseAuth.instance.setLanguageCode("fr");
await user?.sendEmailVerification();
Passwort eines Nutzers festlegen
Sie können das Passwort eines Nutzers mit der Methode updatePassword()
festlegen. Beispiel:
await user?.updatePassword(newPassword);
E-Mail zum Zurücksetzen des Passworts senden
Du kannst eine E-Mail zum Zurücksetzen des Passworts an einen Nutzer mit der sendPasswordResetEmail()
senden.
. Beispiel:
await FirebaseAuth.instance
.sendPasswordResetEmail(email: "user@example.com");
Sie können die E-Mail-Vorlage anpassen, die im Abschnitt „Authentifizierung“ von in der Firebase Console auf der Seite „E-Mail-Vorlagen“ Weitere Informationen finden Sie in der Firebase-Hilfe unter E-Mail-Vorlagen.
Es ist auch möglich, den Status über eine Fortsetzung der URL für eine Zurück-Weiterleitung an die App senden, wenn Sie eine E-Mail zum Zurücksetzen des Passworts senden.
Außerdem kannst du die E-Mail zum Zurücksetzen des Passworts lokalisieren, indem du die Sprache aktualisierst. auf der Auth-Instanz, bevor Sie die E-Mail senden. Beispiel:
await FirebaseAuth.instance.setLanguageCode("fr");
Sie können E-Mails zum Zurücksetzen des Passworts auch über die Firebase Console senden.
Nutzer löschen
Sie können ein Nutzerkonto mit der Methode delete()
löschen. Beispiel:
await user?.delete();
Sie können Nutzer auch in der Firebase Console auf der Seite „Nutzer“ im Abschnitt „Authentifizierung“ löschen.
Nutzer neu authentifizieren
Einige sicherheitsrelevante Aktionen, z. B.
Löschen eines Kontos,
Festlegen einer primären E-Mail-Adresse und
Passwort ändern: Der Nutzer muss
angemeldet sind. Wenn du eine dieser Aktionen ausführst und der Nutzer sich zu lange zuvor angemeldet hat, schlägt die Aktion fehl und es wird eine FirebaseAuthException
mit dem Code requires-recent-login
ausgegeben.
Nutzer in diesem Fall durch Abrufen neuer Anmeldedaten noch einmal authentifizieren
vom Nutzer und übergibt die Anmeldedaten an reauthenticate
. Beispiel:
// Prompt the user to re-provide their sign-in credentials.
// Then, use the credentials to reauthenticate:
await user?.reauthenticateWithCredential(credential);
Nutzerkonten importieren
Sie können Nutzerkonten aus einer Datei in Ihr Firebase-Projekt importieren, indem Sie die
Den Befehl auth:import
der Firebase CLI Beispiel:
firebase auth:import users.json --hash-algo=scrypt --rounds=8 --mem-cost=14