Erstellen Sie einen Benutzer
Sie erstellen einen neuen Benutzer in Ihrem Firebase-Projekt, indem Sie die Methode createUser
aufrufen oder einen Benutzer zum ersten Mal über einen föderierten Identitätsanbieter wie Google Sign-In oder Facebook Login anmelden.
Sie können auch neue passwortauthentifizierte Benutzer über den Abschnitt „Authentifizierung“ der Firebase-Konsole auf der Seite „Benutzer“ erstellen.
Rufen Sie den aktuell angemeldeten Benutzer ab
Der empfohlene Weg, den aktuellen Benutzer abzurufen, besteht darin, einen Listener für das Auth-Objekt festzulegen:
Schnell
handle = Auth.auth().addStateDidChangeListener { auth, user in // ... }
Ziel c
self.handle = [[FIRAuth auth] addAuthStateDidChangeListener:^(FIRAuth *_Nonnull auth, FIRUser *_Nullable user) { // ... }];
Durch die Verwendung eines Listeners stellen Sie sicher, dass sich das Auth-Objekt nicht in einem Zwischenzustand befindet (z. B. Initialisierung), wenn Sie den aktuellen Benutzer erhalten.
Sie können den aktuell angemeldeten Benutzer auch mithilfe der Eigenschaft currentUser
abrufen. Wenn ein Benutzer nicht angemeldet ist, ist currentUser
gleich Null:
Schnell
if Auth.auth().currentUser != nil { // User is signed in. // ... } else { // No user is signed in. // ... }
Ziel c
if ([FIRAuth auth].currentUser) { // User is signed in. // ... } else { // No user is signed in. // ... }
Rufen Sie das Profil eines Benutzers ab
Um die Profilinformationen eines Benutzers abzurufen, verwenden Sie die Eigenschaften einer Instanz von FIRUser
. Zum Beispiel:
Schnell
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 += " " } // ... }
Ziel 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; // ... }
Rufen Sie die anbieterspezifischen Profilinformationen eines Benutzers ab
Um die Profilinformationen abzurufen, die von den mit einem Benutzer verknüpften Anmeldeanbietern abgerufen werden, verwenden Sie die Eigenschaft providerData
. Zum Beispiel:
Schnell
let userInfo = Auth.auth().currentUser?.providerData[indexPath.row] cell?.textLabel?.text = userInfo?.providerID // Provider-specific UID cell?.detailTextLabel?.text = userInfo?.uid
Ziel c
id<FIRUserInfo> userInfo = [FIRAuth auth].currentUser.providerData[indexPath.row]; cell.textLabel.text = [userInfo providerID]; // Provider-specific UID cell.detailTextLabel.text = [userInfo uid];
Aktualisieren Sie das Profil eines Benutzers
Sie können die grundlegenden Profilinformationen eines Benutzers – den Anzeigenamen und die Profilfoto-URL des Benutzers – mit der UserProfileChangeRequest
Klasse aktualisieren. Zum Beispiel:
Schnell
let changeRequest = Auth.auth().currentUser?.createProfileChangeRequest() changeRequest?.displayName = displayName changeRequest?.commitChanges { error in // ... }
Ziel c
FIRUserProfileChangeRequest *changeRequest = [[FIRAuth auth].currentUser profileChangeRequest]; changeRequest.displayName = userInput; [changeRequest commitChangesWithCompletion:^(NSError *_Nullable error) { // ... }];
Legen Sie die E-Mail-Adresse eines Benutzers fest
Sie können die E-Mail-Adresse eines Benutzers mit der updateEmail
Methode festlegen. Zum Beispiel:
Schnell
Auth.auth().currentUser?.updateEmail(to: email) { error in // ... }
Ziel c
[[FIRAuth auth].currentUser updateEmail:userInput completion:^(NSError *_Nullable error) { // ... }];
Senden Sie einem Benutzer eine Bestätigungs-E-Mail
Mit der Methode sendEmailVerificationWithCompletion:
können Sie einem Benutzer eine E-Mail zur Adressbestätigung senden. Zum Beispiel:
Schnell
Auth.auth().currentUser?.sendEmailVerification { error in // ... }
Ziel c
[[FIRAuth auth].currentUser sendEmailVerificationWithCompletion:^(NSError *_Nullable error) { // ... }];
Sie können die E-Mail-Vorlage, die im Abschnitt „Authentifizierung“ der Firebase-Konsole verwendet wird, auf der Seite „E-Mail-Vorlagen“ anpassen. Siehe E-Mail-Vorlagen im Firebase-Hilfecenter.
Es ist auch möglich, den Status über eine Fortsetzungs-URL zu übergeben, um beim Senden einer Bestätigungs-E-Mail zurück zur App umzuleiten.
Darüber hinaus können Sie die Bestätigungs-E-Mail lokalisieren, indem Sie den Sprachcode auf der Auth-Instanz aktualisieren, bevor Sie die E-Mail senden. Zum Beispiel:
Schnell
Auth.auth().languageCode = "fr" // To apply the default app language instead of explicitly setting it. // Auth.auth().useAppLanguage()
Ziel c
[FIRAuth auth].languageCode = @"fr"; // To apply the default app language instead of explicitly setting it. // [[FIRAuth auth] useAppLanguage];
Legen Sie das Passwort eines Benutzers fest
Sie können das Passwort eines Benutzers mit der updatePassword
Methode festlegen. Zum Beispiel:
Schnell
Auth.auth().currentUser?.updatePassword(to: password) { error in // ... }
Ziel c
[[FIRAuth auth].currentUser updatePassword:userInput completion:^(NSError *_Nullable error) { // ... }];
Senden Sie eine E-Mail zum Zurücksetzen des Passworts
Mit der Methode sendPasswordReset
können Sie einem Benutzer eine E-Mail zum Zurücksetzen des Passworts senden. Zum Beispiel:
Schnell
Auth.auth().sendPasswordReset(withEmail: email) { error in // ... }
Ziel c
[[FIRAuth auth] sendPasswordResetWithEmail:userInput completion:^(NSError *_Nullable error) { // ... }];
Sie können die E-Mail-Vorlage, die im Abschnitt „Authentifizierung“ der Firebase-Konsole verwendet wird, auf der Seite „E-Mail-Vorlagen“ anpassen. Siehe E-Mail-Vorlagen im Firebase-Hilfecenter.
Es ist auch möglich, den Status über eine Fortsetzungs-URL zu übergeben, um beim Senden einer E-Mail zum Zurücksetzen des Passworts zurück zur App umzuleiten.
Darüber hinaus können Sie die E-Mail zum Zurücksetzen des Passworts lokalisieren, indem Sie den Sprachcode auf der Auth-Instanz aktualisieren, bevor Sie die E-Mail senden. Zum Beispiel:
Schnell
Auth.auth().languageCode = "fr" // To apply the default app language instead of explicitly setting it. // Auth.auth().useAppLanguage()
Ziel c
[FIRAuth auth].languageCode = @"fr"; // To apply the default app language instead of explicitly setting it. // [[FIRAuth auth] useAppLanguage];
Sie können E-Mails zum Zurücksetzen des Passworts auch über die Firebase-Konsole senden.
Einen Benutzer löschen
Mit der delete
können Sie ein Benutzerkonto löschen. Zum Beispiel:
Schnell
let user = Auth.auth().currentUser
user?.delete { error in
if let error = error {
// An error happened.
} else {
// Account deleted.
}
}
Ziel c
FIRUser *user = [FIRAuth auth].currentUser;
[user deleteWithCompletion:^(NSError *_Nullable error) {
if (error) {
// An error happened.
} else {
// Account deleted.
}
}];
Sie können Benutzer auch im Abschnitt „Authentifizierung“ der Firebase-Konsole auf der Seite „Benutzer“ löschen.
Authentifizieren Sie einen Benutzer erneut
Einige sicherheitsrelevante Aktionen – wie das Löschen eines Kontos , das Festlegen einer primären E-Mail-Adresse und das Ändern eines Passworts – erfordern, dass sich der Benutzer kürzlich angemeldet hat. Wenn Sie eine dieser Aktionen ausführen und der Benutzer sich vor zu langer Zeit angemeldet hat, wird die Die Aktion schlägt mit dem Fehler FIRAuthErrorCodeCredentialTooOld
fehl. Wenn dies geschieht, authentifizieren Sie den Benutzer erneut, indem Sie neue Anmeldeinformationen vom Benutzer erhalten und diese an reauthenticate
übergeben. Zum Beispiel:
Schnell
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.
}
}
Ziel 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.
}
}];
Benutzerkonten importieren
Sie können Benutzerkonten aus einer Datei in Ihr Firebase-Projekt importieren, indem Sie den Befehl auth:import
der Firebase-CLI verwenden. Zum Beispiel:
firebase auth:import users.json --hash-algo=scrypt --rounds=8 --mem-cost=14