Kullanıcı oluşturma
Firebase projenizde, yeni bir kullanıcı oluşturmak için
createUser
yöntemini kullanarak veya bir kullanıcının birleştirilmiş kimlik kullanarak ilk kez oturum açmasını sağlayarak
sağlayıcı (ör. Google ile Oturum Açma veya
Facebook'a Giriş.
Ayrıca Kimlik Doğrulama bölümünden şifreyle kimliği doğrulanmış yeni kullanıcılar da Firebase konsolunun Kullanıcılar sayfasındaki bölümüne gidin.
Oturum açmış durumdaki kullanıcıyı getir
Geçerli kullanıcıyı edinmenin önerilen yolu Kimlik doğrulama nesnesi:
Swift
handle = Auth.auth().addStateDidChangeListener { auth, user in // ... }
Objective-C
self.handle = [[FIRAuth auth] addAuthStateDidChangeListener:^(FIRAuth *_Nonnull auth, FIRUser *_Nullable user) { // ... }];
Bir işleyici kullanarak Auth nesnesinin bir arada olmadığından emin olun durumu (ör. başlatma)
Şu anda oturum açmış kullanıcıyı currentUser
kullanarak da öğrenebilirsiniz
Kullanıcı oturum açmamışsa currentUser
değeri boştur:
Swift
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. // ... }
Kullanıcının profilini alma
Kullanıcının profil bilgilerini almak için şunu kullanın:
FIRUser
Ö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 += " " } // ... }
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 özel profil bilgilerini alma
Bir
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
Objective-C
id<FIRUserInfo> userInfo = [FIRAuth auth].currentUser.providerData[indexPath.row]; cell.textLabel.text = [userInfo providerID]; // Provider-specific UID cell.detailTextLabel.text = [userInfo uid];
Kullanıcı profilini güncelleme
Kullanıcının temel profil bilgilerini (kullanıcının görünen adı) güncelleyebilirsiniz.
ve profil fotoğrafı URL'si (UserProfileChangeRequest
sınıfıyla). Örneğin:
Swift
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) { // ... }];
Kullanıcının e-posta adresini ayarlama
Kullanıcının e-posta adresini updateEmail
yöntemiyle ayarlayabilirsiniz.
Örneğin:
Swift
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önderme
Şu adrese sahip bir kullanıcıya adres doğrulama e-postası gönderebilirsiniz:
sendEmailVerificationWithCompletion:
yöntemini çağırın. Örneğin:
Swift
Auth.auth().currentUser?.sendEmailVerification { error in // ... }
Objective-C
[[FIRAuth auth].currentUser sendEmailVerificationWithCompletion:^(NSError *_Nullable error) { // ... }];
Şu sayfanın Kimlik doğrulama bölümünde kullanılan e-posta şablonunu özelleştirebilirsiniz: Firebase konsolunda, E-posta Şablonları sayfasından ulaşabilirsiniz. E-posta Şablonları'na göz atın: Firebase Yardım Merkezi.
Durum ayrıca bir geri yönlendirmek için devam URL'si uygulamaya koymayı tercih etmiş olursunuz.
Ayrıca, e-posta adresinin dilini güncelleyerek doğrulama e-postasını da yerelleştirebilirsiniz. Auth örneğine eklemeniz gerekir. Örneğin:
Swift
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];
Kullanıcı şifresi ayarlayın
Kullanıcı şifresini updatePassword
yöntemiyle ayarlayabilirsiniz. Örneğin:
Swift
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önderin
Şu adrese sahip bir kullanıcıya şifre sıfırlama e-postası gönderebilirsiniz:
sendPasswordReset
yöntemini çağırın. Örneğin:
Swift
Auth.auth().sendPasswordReset(withEmail: email) { error in // ... }
Objective-C
[[FIRAuth auth] sendPasswordResetWithEmail:userInput completion:^(NSError *_Nullable error) { // ... }];
Şu sayfanın Kimlik doğrulama bölümünde kullanılan e-posta şablonunu özelleştirebilirsiniz: Firebase konsolunda, E-posta Şablonları sayfasından ulaşabilirsiniz. E-posta Şablonları'na göz atın: Firebase Yardım Merkezi.
Durum ayrıca bir geri yönlendirmek için devam URL'si uygulamaya bir şifre sıfırlama e-postası gönderir.
Ayrıca, dili güncelleyerek şifre sıfırlama e-postasını yerelleştirebilirsiniz. Auth örneğine eklemeniz gerekir. Örneğin:
Swift
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];
Şifre sıfırlama e-postalarını Firebase konsolundan da gönderebilirsiniz.
Kullanıcı silme
Bir kullanıcı hesabını delete
yöntemini kullanarak silebilirsiniz. Örneğin:
Swift
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.
}
}];
Ayrıca, Firebase konsolu'nu seçin.
Kullanıcının kimliğini yeniden doğrulama
Güvenlik açısından hassas işlemler (ör.
hesap silme,
birincil e-posta adresini ayarlama ve
şifreyi değiştirme - kullanıcının
kısa bir süre önce oturum açtı. Bu işlemlerden birini gerçekleştirirseniz ve kullanıcı oturum açtıysa
çok uzun zaman önce, işlem FIRAuthErrorCodeCredentialTooOld
ile başarısız oluyor
hatası. Bu durumda, yeni bir oturum açma işlemi yaparak kullanıcının kimliğini tekrar doğrulayın
kimlik bilgilerini kullanıcıdan alıp reauthenticate
adlı cihaza iletmesini gerektirir. Ö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.
}
}
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
Kullanıcı hesaplarını bir dosyadan Firebase projenize aktarmak için
Firebase CLI'ın auth:import
komutu. Örneğin:
firebase auth:import users.json --hash-algo=scrypt --rounds=8 --mem-cost=14