Nutzer erstellen
Sie erstellen einen neuen Nutzer in Ihrem Firebase-Projekt, indem Sie die Methode createUser aufrufen oder einen Nutzer zum ersten Mal über einen Anbieter für föderierte Identitäten wie Google Log-in oder Facebook Login anmelden.
Sie können auch neue Nutzer mit Passwortauthentifizierung im Bereich „Authentifizierung“ der Firebase-Konsole auf der Seite „Nutzer“ erstellen.
Aktuell angemeldeter Nutzer
Die empfohlene Methode zum Abrufen des aktuellen Nutzers besteht darin, einen Listener für das Auth-Objekt festzulegen:
Swift
handle = Auth.auth().addStateDidChangeListener { auth, user in // ... }
Objective-C
self.handle = [[FIRAuth auth] addAuthStateDidChangeListener:^(FIRAuth *_Nonnull auth, FIRUser *_Nullable user) { // ... }];
Durch die Verwendung eines Listeners wird sichergestellt, dass sich das Auth-Objekt nicht in einem Zwischenstatus befindet, z. B. während der Initialisierung, wenn Sie den aktuellen Nutzer abrufen.
Sie können den aktuell angemeldeten Nutzer auch mit der Property currentUser abrufen. Wenn ein Nutzer nicht angemeldet ist, ist currentUser „nil“:
Swift
if Auth.auth().currentUser != nil { // User is signed in. // ... } else { // No user is signed in. // ... }
Objective-C
if ([FIRAuth auth].currentUser) { // User is signed in. // ... } else { // No user is signed in. // ... }
Profil eines Nutzers abrufen
Verwenden Sie die Attribute einer Instanz von FIRUser, um die Profilinformationen eines Nutzers abzurufen. Beispiel:
Swift
let user = Auth.auth().currentUser if let user = user { // The user's ID, unique to the Firebase project. // Do NOT use this value to authenticate with your backend server, // if you have one. Use getTokenWithCompletion:completion: instead. let uid = user.uid let email = user.email let photoURL = user.photoURL var multiFactorString = "MultiFactor: " for info in user.multiFactor.enrolledFactors { multiFactorString += info.displayName ?? "[DispayName]" multiFactorString += " " } // ... }
Objective-C
FIRUser *user = [FIRAuth auth].currentUser; if (user) { // The user's ID, unique to the Firebase project. // Do NOT use this value to authenticate with your backend server, // if you have one. Use getTokenWithCompletion:completion: instead. NSString *email = user.email; NSString *uid = user.uid; NSMutableString *multiFactorString = [NSMutableString stringWithFormat:@"MultiFactor: "]; for (FIRMultiFactorInfo *info in user.multiFactor.enrolledFactors) { [multiFactorString appendString:info.displayName]; [multiFactorString appendString:@" "]; } NSURL *photoURL = user.photoURL; // ... }
Anbieterspezifische Profilinformationen eines Nutzers abrufen
Wenn Sie die Profilinformationen abrufen möchten, die von den mit einem Nutzer verknüpften Anmeldeanbietern abgerufen wurden, verwenden Sie das Attribut providerData. Beispiel:
Swift
let userInfo = Auth.auth().currentUser?.providerData[indexPath.row] cell?.textLabel?.text = userInfo?.providerID // Provider-specific UID cell?.detailTextLabel?.text = userInfo?.uid
Objective-C
id<FIRUserInfo> userInfo = [FIRAuth auth].currentUser.providerData[indexPath.row]; cell.textLabel.text = [userInfo providerID]; // Provider-specific UID cell.detailTextLabel.text = [userInfo uid];
Nutzerprofil aktualisieren
Sie können die grundlegenden Profilinformationen eines Nutzers, also den Anzeigenamen und die Profilbild-URL, mit der Klasse UserProfileChangeRequest aktualisieren. Beispiel:
Swift
let changeRequest = Auth.auth().currentUser?.createProfileChangeRequest() changeRequest?.displayName = displayName changeRequest?.commitChanges { error in // ... }
Objective-C
FIRUserProfileChangeRequest *changeRequest = [[FIRAuth auth].currentUser profileChangeRequest]; changeRequest.displayName = userInput; [changeRequest commitChangesWithCompletion:^(NSError *_Nullable error) { // ... }];
E-Mail-Adresse eines Nutzers festlegen
Sie können die E-Mail-Adresse eines Nutzers mit der Methode updateEmail festlegen.
Beispiel:
Swift
Auth.auth().currentUser?.updateEmail(to: email) { error in // ... }
Objective-C
[[FIRAuth auth].currentUser updateEmail:userInput completion:^(NSError *_Nullable error) { // ... }];
Bestätigungs-E-Mail an einen Nutzer senden
Mit der Methode sendEmailVerificationWithCompletion: können Sie einem Nutzer eine Bestätigungs-E‑Mail zur Adressbestätigung senden. Beispiel:
Swift
Auth.auth().currentUser?.sendEmailVerification { error in // ... }
Objective-C
[[FIRAuth auth].currentUser sendEmailVerificationWithCompletion:^(NSError *_Nullable error) { // ... }];
Sie können die E‑Mail-Vorlage, die im Authentifizierungsabschnitt der Firebase-Konsole verwendet wird, auf der Seite „E‑Mail-Vorlagen“ anpassen. Weitere Informationen finden Sie in der Firebase-Hilfe unter E-Mail-Vorlagen.
Es ist auch möglich, den Status über eine URL zur Weiterleitung zu übergeben, um nach dem Senden einer Bestätigungs-E-Mail zurück zur App weiterzuleiten.
Außerdem können Sie die Bestätigungs-E-Mail lokalisieren, indem Sie den Sprachcode in der Auth-Instanz aktualisieren, bevor Sie die E-Mail senden. Beispiel:
Swift
Auth.auth().languageCode = "fr" // To apply the default app language instead of explicitly setting it. // Auth.auth().useAppLanguage()
Objective-C
[FIRAuth auth].languageCode = @"fr"; // To apply the default app language instead of explicitly setting it. // [[FIRAuth auth] useAppLanguage];
Nutzerpasswort festlegen
Mit der Methode updatePassword können Sie das Passwort eines Nutzers festlegen. Beispiel:
Swift
Auth.auth().currentUser?.updatePassword(to: password) { error in // ... }
Objective-C
[[FIRAuth auth].currentUser updatePassword:userInput completion:^(NSError *_Nullable error) { // ... }];
E‑Mail zum Zurücksetzen des Passworts senden
Mit der Methode sendPasswordReset können Sie einem Nutzer eine E-Mail zum Zurücksetzen des Passworts senden. Beispiel:
Swift
Auth.auth().sendPasswordReset(withEmail: email) { error in // ... }
Objective-C
[[FIRAuth auth] sendPasswordResetWithEmail:userInput completion:^(NSError *_Nullable error) { // ... }];
Sie können die E‑Mail-Vorlage, die im Authentifizierungsabschnitt der Firebase-Konsole verwendet wird, auf der Seite „E‑Mail-Vorlagen“ anpassen. Weitere Informationen finden Sie in der Firebase-Hilfe unter E-Mail-Vorlagen.
Es ist auch möglich, den Status über eine Continue-URL zu übergeben, um nach dem Senden einer E‑Mail zum Zurücksetzen des Passworts zur App zurückzuleiten.
Außerdem können Sie die E-Mail zum Zurücksetzen des Passworts lokalisieren, indem Sie den Sprachcode in der Auth-Instanz aktualisieren, bevor Sie die E-Mail senden. Beispiel:
Swift
Auth.auth().languageCode = "fr" // To apply the default app language instead of explicitly setting it. // Auth.auth().useAppLanguage()
Objective-C
[FIRAuth auth].languageCode = @"fr"; // To apply the default app language instead of explicitly setting it. // [[FIRAuth auth] useAppLanguage];
Sie können auch E‑Mails zum Zurücksetzen des Passworts über die Firebase-Konsole senden.
Nutzer löschen
Sie können ein Nutzerkonto mit der Methode delete löschen. Beispiel:
Swift
let user = Auth.auth().currentUser
user?.delete { error in
if let error = error {
// An error happened.
} else {
// Account deleted.
}
}
Objective-C
FIRUser *user = [FIRAuth auth].currentUser;
[user deleteWithCompletion:^(NSError *_Nullable error) {
if (error) {
// An error happened.
} else {
// Account deleted.
}
}];
Sie können Nutzer auch im Abschnitt „Authentifizierung“ der Firebase-Konsole auf der Seite „Nutzer“ löschen.
Nutzer neu authentifizieren
Einige sicherheitsrelevante Aktionen, z. B. das Löschen eines Kontos, das Festlegen einer primären E‑Mail-Adresse und das Ändern eines Passworts, erfordern, dass der Nutzer sich vor Kurzem angemeldet hat. Wenn Sie eine dieser Aktionen ausführen und sich der Nutzer vor längerer Zeit angemeldet hat, schlägt die Aktion mit dem Fehler FIRAuthErrorCodeCredentialTooOld fehl. In diesem Fall müssen Sie den Nutzer noch einmal authentifizieren. Rufen Sie dazu neue Anmeldedaten vom Nutzer ab und übergeben Sie die Anmeldedaten an reauthenticate. Beispiel:
Swift
let user = Auth.auth().currentUser
var credential: AuthCredential
// Prompt the user to re-provide their sign-in credentials
user?.reauthenticate(with: credential) { error in
if let error = error {
// An error happened.
} else {
// User re-authenticated.
}
}
Objective-C
FIRUser *user = [FIRAuth auth].currentUser;
FIRAuthCredential *credential;
// Prompt the user to re-provide their sign-in credentials
[user reauthenticateWithCredential:credential completion:^(NSError *_Nullable error) {
if (error) {
// An error happened.
} else {
// User re-authenticated.
}
}];
Nutzerkonten importieren
Mit dem Firebase CLI-Befehl auth:import können Sie Nutzerkonten aus einer Datei in Ihr Firebase-Projekt importieren. Beispiel:
firebase auth:import users.json --hash-algo=scrypt --rounds=8 --mem-cost=14