kullanıcı oluştur
Firebase projenizde, createUser
yöntemini çağırarak veya Google Sign-In veya Facebook Login gibi bir birleşik kimlik sağlayıcı kullanarak bir kullanıcıda 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 doğrulaması yapılmış 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 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.
currentUser
özelliğini kullanarak şu anda oturum açmış olan kullanıcıyı da alabilirsiniz. Bir kullanıcı oturum açmamışsa, currentUser
sıfırdır:
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 almak için bir örneğinin özelliklerini kullanın 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
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:
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 bilgilerini (kullanıcının görünen adı ve profil fotoğrafı URL'si) UserProfileChangeRequest
sınıfıyla güncelleyebilirsiniz. Ö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
Bir kullanıcının e-posta adresini updateEmail
yöntemiyle ayarlayabilirsiniz. Ö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
Bir kullanıcıya sendEmailVerificationWithCompletion:
yöntemiyle adres doğrulama e-postası gönderebilirsiniz. Örneğin:
Süratli
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ından özelleştirebilirsiniz. Firebase Yardım Merkezi'ndeki 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 iletmek 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:
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];
Kullanıcı parolası belirleyin
Bir kullanıcının parolasını updatePassword
yöntemiyle belirleyebilirsiniz. Ö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
Bir kullanıcıya sendPasswordReset
yöntemiyle parola sıfırlama e-postası gönderebilirsiniz. Örneğin:
Süratli
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ından özelleştirebilirsiniz. Firebase Yardım Merkezi'ndeki E-posta Şablonlarına bakın.
Parola sıfırlama e-postası gönderirken uygulamaya geri yönlendirmek için durumu bir devam URL'si aracılığıyla iletmek de mümkündür.
Ek olarak, e-postayı göndermeden önce Auth ö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 da parola sıfırlama e-postaları gönderebilirsiniz.
Bir kullanıcıyı sil
Bir kullanıcı hesabını delete
yöntemiyle silebilirsiniz. Ö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.
}
}];
Kullanıcıları, Firebase konsolunun Kullanıcılar sayfasındaki Kimlik Doğrulama bölümünden de silebilirsiniz.
Kullanıcının kimliğini yeniden doğrulama
Bir hesabı silmek , birincil e-posta adresini ayarlamak ve parolayı değiştirmek gibi güvenlik açısından hassas bazı işlemler, kullanıcının yakın zamanda oturum açmış olmasını gerektirir. Bu işlemlerden birini gerçekleştirirseniz ve kullanıcı çok uzun zaman önce oturum açmışsa, eylem, FIRAuthErrorCodeCredentialTooOld
hatasıyla başarısız oluyor. Bu olduğunda, kullanıcıdan yeni oturum açma kimlik bilgileri alarak ve kimlik bilgilerini reauthenticate
ileterek kullanıcının kimliğini yeniden doğrulayın. Ö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
Firebase CLI'nin auth:import
komutunu kullanarak kullanıcı hesaplarını bir dosyadan Firebase projenize aktarabilirsiniz. Örneğin:
firebase auth:import users.json --hash-algo=scrypt --rounds=8 --mem-cost=14