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

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

Bir kullanıcı oluşturun

Firebase projenizde createUserWithEmail:password:completion: çağırarak veya Google ile Oturum Açma veya Facebook Login gibi bir federe kimlik sağlayıcı kullanarak ilk kez bir kullanıcı oturum açarak yeni bir kullanıcı oluşturursunuz.

Firebase konsolunun Kullanıcılar sayfasındaki Kimlik Doğrulama bölümünden de şifre ile doğrulanmış yeni kullanıcılar oluşturabilirsiniz.

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

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

Swift

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 orta düzeyde (başlatma gibi) olmamasını sağlarsınız.

Şu anda oturum currentUser olan kullanıcıyı currentUser özelliğini kullanarak da currentUser . Bir kullanıcı oturum currentUser , currentUser :

Swift

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 almak için, FIRUser örneğinin özelliklerini kullanın. Örneğin:

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

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 özgü profil bilgilerini alın

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:

Swift

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üncelleyin

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

Swift

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

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

Swift

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

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

Swift

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

Amaç-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. Firebase Yardım Merkezi'nde E-posta Şablonları'na bakın.

Bir doğrulama e-postası gönderirken uygulamaya geri yönlendirmek için durumu bir devam URL'si aracılığıyla geçirmek de mümkündür.

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

Swift

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 ayarlayın

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

Swift

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önderin

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

Swift

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

Amaç-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. Firebase Yardım Merkezi'nde E-posta Şablonları'na bakın.

Bir şifre sıfırlama e-postası gönderirken uygulamaya geri yönlendirmek için durumu bir devam URL'si aracılığıyla geçirmek 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:

Swift

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 şifre sıfırlama e-postaları da gönderebilirsiniz.

Bir kullanıcıyı silin

deleteWithCompletion yöntemi ile bir kullanıcı hesabını silebilirsiniz. Örneğin:

Swift

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

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

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

Bir hesabı silme , birincil e-posta adresi ayarlama ve bir şifre değiştirme gibi güvenlik açısından hassas bazı eylemler, kullanıcının yakın zamanda oturum açmasını gerektirir. Bu işlemlerden birini gerçekleştirirseniz ve kullanıcı çok uzun süre önce oturum açtıysa, eylem FIRAuthErrorCodeCredentialTooOld hatasıyla başarısız oluyor. Böyle bir durumda, kullanıcıdan yeni oturum açma kimlik bilgilerini alarak ve kimlik bilgilerini yeniden reauthenticate için ileterek kullanıcının kimliğini yeniden doğrulayın. Örneğin:

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

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ın

Firebase CLI'nin auth:import komutunu kullanarak kullanıcı hesaplarını bir dosyadan Firebase projenize auth:import . Örneğin:

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