Kullanıcı oluştur
Firebase projenizde dört yolla yeni bir kullanıcı yaratırsınız:
-
createUserWithEmailAndPassword()
yöntemini çağırın. - Google Sign-In, Facebook Login veya Apple gibi bir birleşik kimlik sağlayıcı kullanarak bir kullanıcıda ilk kez oturum açın.
Ayrıca, Kullanıcılar sayfasındaki Firebase konsolunun Kimlik Doğrulama bölümünden parolayla doğrulanmış yeni kullanıcılar da oluşturabilirsiniz.
Bir kullanıcının profilini alın
Bir kullanıcının profil bilgilerini almak için User
özelliklerini kullanın. Geçerli kullanıcıyı temsil eden bir User
nesnesi almanın üç yolu vardır:
authStateChanges
,idTokenChanges
veuserChanges
akışları: dinleyicileriniz geçerliUser
öğesini veya hiçbir kullanıcının kimliği doğrulanmadıysanull
değerini alır:FirebaseAuth.instance .authStateChanges() .listen((User? user) { if (user != null) { print(user.uid); } });
Uygulama başladığında, yerel depolamadaki kullanıcı kimlik bilgileri (varsa) geri yüklendikten sonra bir olay tetiklenir; bu, kullanıcı durumu başlatıldığında dinleyicilerinizin her zaman aranacağı anlamına gelir. Ardından, kimlik doğrulama durumu her değiştiğinde, güncellenmiş kullanıcı durumuyla yeni bir olay başlatılacaktır.
Kimlik doğrulama durumunu dinleyerek, kimlik doğrulama durumundaki bu değişikliklere tepki veren bir kullanıcı arabirimi oluşturabilirsiniz.
Kimlik doğrulama (
signIn
-) yöntemleri tarafından döndürülenUserCredential
nesnesi:UserCredential
nesnesinin şu ankiUser
ile biruser
özelliği vardır:final userCredential = await FirebaseAuth.instance.signInWithCredential(credential); final user = userCredential.user; print(user?.uid);
currentUser
örneğininFirebaseAuth
özelliği: Kullanıcının şu anda oturum açmış olduğundan eminseniz,currentUser
özelliğindenUser
erişebilirsiniz:if (FirebaseAuth.instance.currentUser != null) { print(FirebaseAuth.instance.currentUser?.uid); }
currentUser
iki nedenden dolayınull
olabilir:- Kullanıcı oturum açmadı.
- Yetkilendirme nesnesi başlatmayı tamamlamadı. Kullanıcının oturum açma durumunu takip etmek için bir dinleyici kullanıyorsanız, bu durumla ilgilenmeniz gerekmez.
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:
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;
}
}
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) update
yöntemleriyle güncelleyebilirsiniz. Örneğin:
await user?.updateDisplayName("Jane Q. User");
await user?.updatePhotoURL("https://example.com/jane-q-user/profile.jpg");
Bir kullanıcının e-posta adresini ayarlayın
updateEmail()
yöntemiyle bir kullanıcının e-posta adresini ayarlayabilirsiniz. Örneğin:
await user?.updateEmail("janeq@example.com");
Bir kullanıcıya doğrulama e-postası gönderin
sendEmailVerification()
yöntemiyle bir kullanıcıya adres doğrulama e-postası gönderebilirsiniz. Örneğin:
await user?.sendEmailVerification();
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.
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.
Ayrıca, e-postayı göndermeden önce Yetkilendirme örneğindeki dil kodunu güncelleyerek doğrulama e-postasını yerelleştirebilirsiniz. Örneğin:
await FirebaseAuth.instance.setLanguageCode("fr");
await user?.sendEmailVerification();
Bir kullanıcının şifresini belirleyin
updatePassword()
yöntemiyle bir kullanıcının parolasını belirleyebilirsiniz. Örneğin:
await user?.updatePassword(newPassword);
Şifre sıfırlama e-postası gönder
sendPasswordResetEmail()
yöntemiyle bir kullanıcıya parola sıfırlama e-postası gönderebilirsiniz. Örneğin:
await FirebaseAuth.instance
.sendPasswordResetEmail(email: "user@example.com");
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önderirken 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 Yetkilendirme örneğindeki dil kodunu güncelleyerek parola sıfırlama e-postasını yerelleştirebilirsiniz. Örneğin:
await FirebaseAuth.instance.setLanguageCode("fr");
Firebase konsolundan parola sıfırlama e-postaları da gönderebilirsiniz.
Bir kullanıcıyı sil
Bir kullanıcı hesabını delete()
yöntemiyle silebilirsiniz. Örneğin:
await user?.delete();
Kullanıcıları, Kullanıcılar sayfasındaki Firebase konsolunun Kimlik Doğrulama bölümünden de silebilirsiniz.
Bir kullanıcının kimliğini yeniden doğrulama
Bir hesabı silme , birincil e-posta adresi belirleme ve parola değiştirme gibi güvenlik açısından hassas bazı işlemler, kullanıcının yakın zamanda oturum açmasını gerektirir. Bu işlemlerden birini gerçekleştirirseniz ve kullanıcı çok uzun zaman önce oturum açmışsa, eylem başarısız olur ve requires-recent-login
koduyla bir FirebaseAuthException
oluşturur. Bu olduğunda, kullanıcıdan yeni oturum açma kimlik bilgilerini alarak ve kimlik bilgilerini reauthenticate
ileterek kullanıcının kimliğini yeniden doğrulayın. Ö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 aktar
Firebase CLI'nin auth:import
komutunu kullanarak bir dosyadan kullanıcı hesaplarını Firebase projenize aktarabilirsiniz. Örneğin:
firebase auth:import users.json --hash-algo=scrypt --rounds=8 --mem-cost=14