Google is committed to advancing racial equity for Black communities. See how.
Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

Firebase'deki Kullanıcıları Yönetme

Bir kullanıcı oluşturun

Firebase projenizde, createUserWithEmail:password:completion: yöntemini çağırarak veya Google Oturum Açma veya Facebook Girişi gibi bir birleşik kimlik sağlayıcısı kullanarak bir kullanıcı için ilk kez oturum açarak yeni bir kullanıcı oluşturursunuz.

Ayrıca, Firebase konsolunun Kullanıcılar sayfasındaki Kimlik Doğrulama bölümünden parola kimliği doğrulanmış yeni kullanıcılar da oluşturabilirsiniz.

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

Geçerli kullanıcıyı almanın önerilen yolu Auth nesnesinde bir dinleyici ayarlamaktır:

hızlı

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

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

Şu anda oturum currentUser olan kullanıcıyı currentUser özelliğini kullanarak da currentUser . Bir kullanıcı oturum currentUser sıfırdır:

hızlı

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

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

Bir kullanıcının profil bilgilerini almak için FIRUser örneğinin özelliklerini kullanın. Örneğin:

hızlı

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

Kullanıcının sağlayıcıya özgü profil bilgilerini alma

Bir kullanıcıya bağlı oturum açma sağlayıcılarından alınan profil bilgilerini almak için providerData özelliğini kullanın. Örneğin:

hızlı

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];

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

Bir kullanıcının temel profil bilgilerini (kullanıcının görünen adı ve profil fotoğrafı URL'si) FIRUserProfileChangeRequest sınıfıyla güncelleyebilirsiniz. Örneğin:

hızlı

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

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

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

hızlı

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

Objective-C

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

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

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

hızlı

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

Objective-C

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

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

Bir doğrulama e-postası gönderilirken uygulamaya tekrar yönlendirmek için bir devam URL'si üzerinden durum iletmek de mümkündür.

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

hızlı

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];

Bir kullanıcının şifresini belirleyin

Bir kullanıcının parolasını updatePassword:completion: yöntemiyle updatePassword:completion: . Örneğin:

hızlı

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

Objective-C

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

Şifre sıfırlama e-postası gönderme

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

hızlı

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

Objective-C

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

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

Bir şifre sıfırlama e-postası gönderilirken uygulamaya tekrar yönlendirmek için devam URL'si üzerinden durum iletmek de mümkündür.

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

hızlı

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];

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

Bir kullanıcıyı silme

Bir kullanıcı hesabını deleteWithCompletion yöntemiyle silebilirsiniz. Örneğin:

hızlı

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

Kullanıcıları, Firebase konsolunun Kullanıcılar sayfasındaki Kimlik Doğrulama bölümünden de silebilirsiniz.

Bir kullanıcının yeniden doğrulanması

Hesabın silinmesi , birincil e-posta adresinin ayarlanması ve parolanın değiştirilmesi gibi güvenliğe duyarlı bazı işlemler, kullanıcının son zamanlarda oturum açmasını gerektirir. Bu işlemlerden birini gerçekleştirirseniz ve kullanıcı çok uzun süre önce oturum açmışsa, eylem FIRAuthErrorCodeCredentialTooOld hatasıyla başarısız olur. Bu durumda, kullanıcıdan yeni oturum açma kimlik bilgileri alıp reauthenticate yeniden reauthenticate için geçirerek kullanıcıyı yeniden doğrulayın. Örneğin:

hızlı

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

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

Firebase CLI's auth:import komutunu kullanarak dosya hesaplarını Firebase projenize auth:import . Örneğin:

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