Kullanıcı oluşturma
Firebase projenizde yeni bir kullanıcıyı dört şekilde oluşturabilirsiniz:
createUserWithEmailAndPassword()
yöntemini çağırın.- Birleştirilmiş kimlik sağlayıcı kullanarak bir kullanıcının ilk kez oturum açmasını sağlama, Google ile Oturum Açma, Facebook Girişi veya Apple gibi.
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ında yer alan bir bölüm gösterilir.
Kullanıcının profilini alma
Kullanıcının profil bilgilerini almak için User
özelliklerini kullanın. Her biri 100'den az gösterim alan
geçerli kullanıcıyı temsil eden bir User
nesnesini almanın üç yolu vardır:
authStateChanges
,idTokenChanges
veuserChanges
akışları: dinleyicilere mevcutUser
veya hiçbir kullanıcı yoksanull
gönderilir kimlik doğrulaması yapılmış:FirebaseAuth.instance .authStateChanges() .listen((User? user) { if (user != null) { print(user.uid); } });
Uygulama başladığında, yerel depolama alanı yenilendi. Böylece, dinleyicileriniz her zaman ilk kullanıma sunulduğunda çağrılır. Daha sonra, kimlik doğrulama işlemi durumu değiştiğinde, güncellenen kullanıcı durumuyla yeni bir etkinlik oluşturulur.
Kimlik doğrulama durumunu dinleyerek, Google Cloud'daki kimlik doğrulama durumunda bu değişikliklere tepki verir.
Kimlik doğrulama (
signIn
-) tarafından döndürülenUserCredential
nesnesi yöntemler:UserCredential
nesnesi, geçerliuser
User
:final userCredential = await FirebaseAuth.instance.signInWithCredential(credential); final user = userCredential.user; print(user?.uid);
FirebaseAuth
örneğinincurrentUser
özelliği: kullanıcı şu anda oturum açmış durumda.User
uygulamasınacurrentUser
üzerinden erişebilirsiniz mülk:if (FirebaseAuth.instance.currentUser != null) { print(FirebaseAuth.instance.currentUser?.uid); }
currentUser
, iki nedenden dolayınull
olabilir:- Kullanıcı oturum açmamıştır.
- auth nesnesinin ilk kullanıma hazırlanması tamamlanmadı. Bir dinleyici kullanarak takip etmek için bu destek kaydıyla ilgilenmenize gerek yoktur.
Kullanıcının sağlayıcıya özel profil bilgilerini alma
Bir
için providerData
özelliğini kullanın. Örneğin:
if (user != null) {
for (final providerProfile in user.providerData) {
// ID of the provider (google.com, apple.com, etc.)
final provider = providerProfile.providerId;
// UID specific to the provider
final uid = providerProfile.uid;
// Name, email address, and profile photo URL
final name = providerProfile.displayName;
final emailAddress = providerProfile.email;
final profilePhoto = providerProfile.photoURL;
}
}
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'sini (update
- yöntemleriyle) kullanın. Örneğin:
await user?.updateDisplayName("Jane Q. User");
await user?.updatePhotoURL("https://example.com/jane-q-user/profile.jpg");
Kullanıcının e-posta adresini ayarlama
Kullanıcının e-posta adresini updateEmail()
yöntemiyle ayarlayabilirsiniz. Örneğin:
await user?.updateEmail("janeq@example.com");
Bir kullanıcıya doğrulama e-postası gönderme
Şu adrese sahip bir kullanıcıya adres doğrulama e-postası gönderebilirsiniz:
sendEmailVerification()
yöntemini çağırın. Örneğin:
await user?.sendEmailVerification();
Şu sayfanın Kimlik doğrulama bölümünde kullanılan e-posta şablonunu özelleştirebilirsiniz: Firebase konsolunda, E-posta Şablonları sayfasında yer alır. 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:
await FirebaseAuth.instance.setLanguageCode("fr");
await user?.sendEmailVerification();
Kullanıcı şifresi ayarlayın
Kullanıcı şifresini updatePassword()
yöntemiyle ayarlayabilirsiniz. Örneğin:
await user?.updatePassword(newPassword);
Şifre sıfırlama e-postası gönderin
sendPasswordResetEmail()
kullanan bir kullanıcıya şifre sıfırlama e-postası gönderebilirsiniz.
yöntemidir. Örneğin:
await FirebaseAuth.instance
.sendPasswordResetEmail(email: "user@example.com");
Şu sayfanın Kimlik doğrulama bölümünde kullanılan e-posta şablonunu özelleştirebilirsiniz: Firebase konsolunda, E-posta Şablonları sayfasında yer alır. 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:
await FirebaseAuth.instance.setLanguageCode("fr");
Firebase konsolundan şifre sıfırlama e-postaları da gönderebilirsiniz.
Kullanıcı silme
Bir kullanıcı hesabını delete()
yöntemini kullanarak silebilirsiniz. Örneğin:
await user?.delete();
Ayrıca, Firebase konsolunu kullanıcılar sayfasında açın.
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 başarısız olur ve kodu içeren bir FirebaseAuthException
atar
requires-recent-login
.
Bu durumda, yeni oturum açma kimlik bilgileri alarak kullanıcının kimliğini tekrar doğrulayın
kimlik bilgilerini reauthenticate
adlı sağlayıcıya iletmelidir. Örneğin:
// Prompt the user to re-provide their sign-in credentials.
// Then, use the credentials to reauthenticate:
await user?.reauthenticateWithCredential(credential);
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