Kullanıcı oluştur
createUser
yöntemini çağırarak veya Google Oturum Açma veya Facebook Oturum Açma gibi birleştirilmiş kimlik sağlayıcıyı kullanarak bir kullanıcıda ilk kez oturum açarak Firebase projenizde yeni bir kullanıcı oluşturursunuz.
Firebase konsolunun Kullanıcılar sayfasındaki Kimlik Doğrulama bölümünden de şifreyle kimliği doğrulanmış yeni kullanıcılar oluşturabilirsiniz.
Şu anda oturum açmış olan kullanıcıyı alın
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 başlatma gibi bir ara durumda olmadığından emin olursunuz.
Şu anda oturum açmış olan kullanıcıyı currentUser
özelliğini kullanarak 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 FIRUser
örneğinin özelliklerini kullanın. Ö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; // ... }
Kullanıcının sağlayıcıya özel 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:
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
Kullanıcının temel profil bilgilerini (kullanıcının görünen adı ve profil fotoğrafının 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) { // ... }];
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
sendEmailVerificationWithCompletion:
yöntemini kullanarak bir kullanıcıya 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ında özelleştirebilirsiniz. Firebase Yardım Merkezi'ndeki E-posta Şablonları'na bakın.
Doğrulama e-postası gönderilirken uygulamaya geri yönlendirmek için durumu bir devam URL'si aracılığıyla 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:
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 ayarlayın
updatePassword
yöntemiyle bir kullanıcının şifresini ayarlayabilirsiniz. Örneğin:
Süratli
Auth.auth().currentUser?.updatePassword(to: password) { error in // ... }
Amaç-C
[[FIRAuth auth].currentUser updatePassword:userInput completion:^(NSError *_Nullable error) { // ... }];
Şifre sıfırlama e-postası gönder
sendPasswordReset
yöntemini kullanarak bir kullanıcıya şifre 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ında özelleştirebilirsiniz. Firebase Yardım Merkezi'ndeki E-posta Şablonları'na bakın.
Parola sıfırlama e-postası gönderilirken uygulamaya geri yönlendirmek için durumu bir devam URL'si aracılığıyla 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:
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 şifre sıfırlama e-postaları gönderebilirsiniz.
Kullanıcıyı silme
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.
}
}];
Ayrıca Firebase konsolunun Kullanıcılar sayfasındaki Kimlik Doğrulama bölümünden de kullanıcıları silebilirsiniz.
Bir kullanıcının kimliğini yeniden doğrulama
Hesabı silmek , birincil e-posta adresi ayarlamak ve şifreyi 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. Böyle bir durumda, kullanıcıdan yeni oturum açma kimlik bilgilerini alarak ve kimlik bilgilerini yeniden reauthenticate
işlemine 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