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

Benutzer in Firebase verwalten

Erstellen Sie einen Benutzer

Sie erstellen einen neuen Benutzer in Ihrem Firebase-Projekt, indem Sie die Methode createUserWithEmail:password:completion: aufrufen oder einen Benutzer zum ersten Mal mit einem Verbundidentitätsanbieter wie Google Sign-In oder Facebook Login anmelden .

Sie können auch neue Benutzer mit Kennwortauthentifizierung im Abschnitt Authentifizierung der Firebase-Konsole auf der Seite Benutzer erstellen.

Holen Sie sich den aktuell angemeldeten Benutzer

Der empfohlene Weg, um den aktuellen Benutzer zu erhalten, 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. bei der Initialisierung, wenn Sie den aktuellen Benutzer erhalten.

Sie können den aktuell angemeldeten Benutzer auch mithilfe der Eigenschaft currentUser . Wenn ein Benutzer nicht angemeldet ist, ist currentUser 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.
  // ...
}

Holen Sie sich ein Benutzerprofil

Verwenden Sie die Eigenschaften einer Instanz von FIRUser , um die Profilinformationen eines Benutzers FIRUser . Beispielsweise:

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;
  // ...
}

Abrufen der anbieterspezifischen Profilinformationen eines Benutzers

Verwenden Sie die Eigenschaft providerData um die Profilinformationen abzurufen, die von den mit einem Benutzer verknüpften Anmeldeanbietern abgerufen wurden. Beispielsweise:

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 URL des FIRUserProfileChangeRequest des Benutzers - mit der FIRUserProfileChangeRequest Klasse FIRUserProfileChangeRequest . Beispielsweise:

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 Methode updateEmail:completion: . Beispielsweise:

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 eine E-Mail zur Adressbestätigung an einen Benutzer sendEmailVerificationWithCompletion: . Beispielsweise:

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 in der Firebase-Hilfe.

Es ist auch möglich, den Status über eine Fortsetzungs-URL zu übergeben, um beim Senden einer Bestätigungs-E-Mail zur App zurückzuleiten.

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. Beispielsweise:

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 Kennwort eines Benutzers mit der Methode updatePassword:completion: . Beispielsweise:

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 sendPasswordResetWithEmail:completion: können Sie eine E-Mail zum Zurücksetzen des Kennworts an einen Benutzer sendPasswordResetWithEmail:completion: . Beispielsweise:

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 in der Firebase-Hilfe.

Es ist auch möglich, den Status über eine Fortsetzungs-URL zu übergeben, um beim Senden einer E-Mail zum Zurücksetzen des Kennworts zur App zurückzuleiten.

Darüber hinaus können Sie die E-Mail zum Zurücksetzen des Kennworts lokalisieren, indem Sie den Sprachcode in der Auth-Instanz aktualisieren, bevor Sie die E-Mail senden. Beispielsweise:

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 auch E-Mails zum Zurücksetzen des Kennworts über die Firebase-Konsole senden.

Löschen Sie einen Benutzer

Sie können ein Benutzerkonto mit der Methode deleteWithCompletion löschen. Beispielsweise:

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 aus dem Abschnitt Authentifizierung der Firebase-Konsole auf der Seite Benutzer löschen.

Authentifizieren Sie einen Benutzer erneut

Einige sicherheitsrelevante Aktionen, z. B. das Löschen eines Kontos , das Festlegen einer primären E-Mail-Adresse und das Ändern eines Kennworts, setzen voraus, 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, muss der Aktion schlägt mit dem Fehler FIRAuthErrorCodeCredentialTooOld fehl. Authentifizieren Sie in diesem reauthenticate den Benutzer erneut, indem Sie vom Benutzer neue Anmeldeinformationen reauthenticate und die Anmeldeinformationen erneut reauthenticate . Beispielsweise:

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 auth:import indem Sie den Befehl auth:import der Firebase-CLI verwenden. Beispielsweise:

 firebase auth:import users.json --hash-algo=scrypt --rounds=8 --mem-cost=14