Catch up on everthing we announced at this year's Firebase Summit. Learn more

Firebase'de Kullanıcıları Yönetin

Kullanıcı oluştur

Sen arayarak Firebase projesinde yeni bir kullanıcı oluşturmak createUserWithEmail:password:completion: yöntem veya gibi bir birleşik kimlik sağlayıcı kullanarak ilk kez bir kullanıcı oturum açarak Google Oturum Açma veya Facebook Login .

Ayrıca Kimlik Doğrulama bölümüne yeni şifre doğrulanmış kullanıcıları oluşturabilir Firebase konsolunun Kullanıcılar sayfasında,.

Şu anda oturum açmış olan kullanıcıyı alın

Geçerli kullanıcıyı edinmenin önerilen yolu, Auth nesnesine bir dinleyici ayarlamaktır:

Süratli

handle = Auth.auth().addStateDidChangeListener { auth, user in
  // ...
}

Amaç-C

self.handle = [[FIRAuth auth]
    addAuthStateDidChangeListener:^(FIRAuth *_Nonnull auth, FIRUser *_Nullable user) {
      // ...
    }];

Bir dinleyici kullanarak, geçerli kullanıcıyı aldığınızda Auth nesnesinin bir ara durumda (başlatma gibi) olmadığından emin olursunuz.

Ayrıca kullanarak şu anda oturum açmış kullanıcının alabilirsiniz currentUser özelliği. Bir kullanıcı oturum açtıktan değilse, currentUser nil:

Süratli

if Auth.auth().currentUser != nil {
  // User is signed in.
  // ...
} else {
  // No user is signed in.
  // ...
}

Amaç-C

if ([FIRAuth auth].currentUser) {
  // User is signed in.
  // ...
} else {
  // No user is signed in.
  // ...
}

Bir kullanıcının profilini alın

Bir kullanıcının profil bilgilerini elde etmek için, bir örneğinin özelliklerini kullanmak FIRUser . Örneğin:

Süratli

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 += " "
  }
  // ...
}

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

Bir kullanıcının sağlayıcıya özel profil bilgilerini alın

Alınan profil bilgilerini almak için oturum açma bir kullanıcıya bağlı sağlayıcılar, kullanmak providerData özelliğini. Örneğin:

Süratli

let userInfo = Auth.auth().currentUser?.providerData[indexPath.row]
cell?.textLabel?.text = userInfo?.providerID
// Provider-specific UID
cell?.detailTextLabel?.text = userInfo?.uid

Amaç-C

id<FIRUserInfo> userInfo = [FIRAuth auth].currentUser.providerData[indexPath.row];
cell.textLabel.text = [userInfo providerID];
// Provider-specific UID
cell.detailTextLabel.text = [userInfo uid];

Bir kullanıcının profilini güncelleme

Bir kullanıcının temel profil bilgileri-kullanıcının görünen adı ve profil fotoğraf URL'sini-ile güncelleyebilirsiniz FIRUserProfileChangeRequest sınıfında. Örneğin:

Süratli

let changeRequest = Auth.auth().currentUser?.createProfileChangeRequest()
changeRequest?.displayName = displayName
changeRequest?.commitChanges { error in
  // ...
}

Amaç-C

FIRUserProfileChangeRequest *changeRequest = [[FIRAuth auth].currentUser profileChangeRequest];
changeRequest.displayName = userInput;
[changeRequest commitChangesWithCompletion:^(NSError *_Nullable error) {
  // ...
}];

Bir kullanıcının e-posta adresini ayarlayın

Sen bir kullanıcının e-posta adresini ayarlayabilirsiniz updateEmail:completion: yöntemiyle. Örneğin:

Süratli

Auth.auth().currentUser?.updateEmail(to: email) { error in
  // ...
}

Amaç-C

[[FIRAuth auth].currentUser updateEmail:userInput completion:^(NSError *_Nullable error) {
  // ...
}];

Bir kullanıcıya doğrulama e-postası gönderin

Sen bir kullanıcıya bir adres doğrulama e-posta gönderebilirsiniz sendEmailVerificationWithCompletion: yöntemini. Örneğin:

Süratli

Auth.auth().currentUser?.sendEmailVerification { error in
  // ...
}

Amaç-C

[[FIRAuth auth].currentUser sendEmailVerificationWithCompletion:^(NSError *_Nullable error) {
  // ...
}];

Sen Kimlik Doğrulama bölümünde kullanılan e-posta şablonunu özelleştirebilirsiniz Firebase konsolunun E-posta Şablonları sayfasında,. Bkz E-posta şablonları Firebase Yardım Merkezi'nde.

Bir yoluyla devlet geçmek de mümkündür URL'yi devam bir doğrulama e gönderirken app geri yönlendirmek için.

Ayrıca, e-postayı göndermeden önce Auth örneğindeki dil kodunu güncelleyerek doğrulama e-postasını yerelleştirebilirsiniz. Örneğin:

Süratli

Auth.auth().languageCode = "fr"
// To apply the default app language instead of explicitly setting it.
// Auth.auth().useAppLanguage()

Amaç-C

[FIRAuth auth].languageCode = @"fr";
// To apply the default app language instead of explicitly setting it.
// [[FIRAuth auth] useAppLanguage];

Bir kullanıcının şifresini belirleyin

Sen bir kullanıcının şifresini ayarlayabilirsiniz updatePassword:completion: yöntemiyle. Örneğin:

Süratli

Auth.auth().currentUser?.updatePassword(to: password) { error in
  // ...
}

Amaç-C

[[FIRAuth auth].currentUser updatePassword:userInput completion:^(NSError *_Nullable error) {
  // ...
}];

Parola sıfırlama e-postası gönder

Sen bir kullanıcıya bir parola sıfırlama e-posta gönderebilir sendPasswordResetWithEmail:completion: yöntemiyle. Örneğin:

Süratli

Auth.auth().sendPasswordReset(withEmail: email) { error in
  // ...
}

Amaç-C

[[FIRAuth auth] sendPasswordResetWithEmail:userInput completion:^(NSError *_Nullable error) {
  // ...
}];

Sen Kimlik Doğrulama bölümünde kullanılan e-posta şablonunu özelleştirebilirsiniz Firebase konsolunun E-posta Şablonları sayfasında,. Bkz E-posta şablonları Firebase Yardım Merkezi'nde.

Bir yoluyla devlet geçmek de mümkündür URL'yi devam parola sıfırlama e-posta gönderirken app geri yönlendirmek için.

Ayrıca, e-postayı göndermeden önce Yetkilendirme örneğindeki dil kodunu güncelleyerek parola sıfırlama e-postasını yerelleştirebilirsiniz. Örneğin:

Süratli

Auth.auth().languageCode = "fr"
// To apply the default app language instead of explicitly setting it.
// Auth.auth().useAppLanguage()

Amaç-C

[FIRAuth auth].languageCode = @"fr";
// To apply the default app language instead of explicitly setting it.
// [[FIRAuth auth] useAppLanguage];

Firebase konsolundan parola sıfırlama e-postaları da gönderebilirsiniz.

Bir kullanıcıyı sil

Sen sahip bir kullanıcı hesabı silebilir deleteWithCompletion yöntemiyle. Örneğin:

Süratli

let user = Auth.auth().currentUser

user?.delete { error in
  if let error = error {
    // An error happened.
  } else {
    // Account deleted.
  }
}

Amaç-C

FIRUser *user = [FIRAuth auth].currentUser;

[user deleteWithCompletion:^(NSError *_Nullable error) {
  if (error) {
    // An error happened.
  } else {
    // Account deleted.
  }
}];

Sen Ayrıca Kimlik Doğrulama bölümünden silme kullanıcılar Firebase konsolundaki Kullanıcılar sayfasında,.

Bir kullanıcının kimliğini yeniden doğrulama

Bazı güvenlik duyarlı eylemleri-gibi bir hesap silme , birincil e-posta adresi ayarlama ve şifre değiştirme kullanıcı son zamanlarda içinde imzaladığını -require. Bu eylemlerden birini gerçekleştirin ve kullanıcı önce, çok uzun imzalanmasının eylem ile başarısız FIRAuthErrorCodeCredentialTooOld hatası. Bu durumda, kullanıcıdan kimlik oturum açma yeni alma ve kimlik bilgilerini ileterek kullanıcı reauthenticate reauthenticate . Örneğin:

Süratli

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

Amaç-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.
  }
}];

Kullanıcı hesaplarını içe aktar

Sen Firebase Cli en kullanarak Firebase projeye bir dosyadan kullanıcı hesaplarını alabilirsiniz auth:import komutu. Örneğin:

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