Firebase Authentication'ı, kullanıcılarınızın e-posta adreslerini ve parolalarını kullanarak Firebase ile kimlik doğrulaması yapmasına izin vermek ve uygulamanızın parola tabanlı hesaplarını yönetmek için kullanabilirsiniz.
Sen başlamadan önce
Firebase Authentication'ı kullanmadan önce yapmanız gerekenler:
Unity projenizi kaydedin ve Firebase'i kullanacak şekilde yapılandırın.
Unity projeniz zaten Firebase kullanıyorsa Firebase için zaten kayıtlı ve yapılandırılmış demektir.
Bir Unity projeniz yoksa örnek bir uygulama indirebilirsiniz.
Firebase Unity SDK'sını (özellikle
FirebaseAuth.unitypackage
) Unity projenize ekleyin.
Unity projenize Firebase eklemenin hem Firebase konsolunda hem de açık Unity projenizde görevler içerdiğini unutmayın (örneğin, Firebase yapılandırma dosyalarını konsoldan indirir ve ardından bunları Unity projenize taşırsınız).
Firebase.Auth.FirebaseAuth
sınıfına erişin
FirebaseAuth
sınıfı, tüm API çağrıları için ağ geçididir. FirebaseAuth.DefaultInstance aracılığıyla erişilebilir.Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
Parola tabanlı bir hesap oluşturun
Parola ile yeni bir kullanıcı hesabı oluşturmak için uygulamanızın oturum açma kodunda aşağıdaki adımları tamamlayın:
- Yeni bir kullanıcı, uygulamanızın kayıt formunu kullanarak kaydolduğunda, yeni hesabın parolasının doğru yazıldığını ve karmaşıklık gereksinimlerinizi karşıladığını doğrulamak gibi, uygulamanızın gerektirdiği tüm yeni hesap doğrulama adımlarını tamamlayın.
- Yeni kullanıcının e-posta adresini ve parolasını
FirebaseAuth.CreateUserWithEmailAndPassword
ileterek yeni bir hesap oluşturun:auth.CreateUserWithEmailAndPasswordAsync(email, password).ContinueWith(task => { if (task.IsCanceled) { Debug.LogError("CreateUserWithEmailAndPasswordAsync was canceled."); return; } if (task.IsFaulted) { Debug.LogError("CreateUserWithEmailAndPasswordAsync encountered an error: " + task.Exception); return; } // Firebase user has been created. Firebase.Auth.AuthResult result = task.Result; Debug.LogFormat("Firebase user created successfully: {0} ({1})", result.User.DisplayName, result.User.UserId); });
Bir e-posta adresi ve şifre ile bir kullanıcı oturumu açın
Bir kullanıcıyı parola ile oturum açma adımları, yeni bir hesap oluşturma adımlarına benzer. Uygulamanızın oturum açma işlevinde aşağıdakileri yapın:
- Bir kullanıcı uygulamanızda oturum açtığında, kullanıcının e-posta adresini ve şifresini
FirebaseAuth.SignInWithEmailAndPassword
:auth.SignInWithEmailAndPasswordAsync(email, password).ContinueWith(task => { if (task.IsCanceled) { Debug.LogError("SignInWithEmailAndPasswordAsync was canceled."); return; } if (task.IsFaulted) { Debug.LogError("SignInWithEmailAndPasswordAsync encountered an error: " + task.Exception); return; } Firebase.Auth.AuthResult result = task.Result; Debug.LogFormat("User signed in successfully: {0} ({1})", result.User.DisplayName, result.User.UserId); });
iletin - Ayrıca kimlik bilgilerini oluşturabilir ve diğer iş akışları gibi oturum açabilirsiniz:
Firebase.Auth.Credential credential = Firebase.Auth.EmailAuthProvider.GetCredential(email, password); auth.SignInAndRetrieveDataWithCredentialAsync(credential).ContinueWith(task => { if (task.IsCanceled) { Debug.LogError("SignInAndRetrieveDataWithCredentialAsync was canceled."); return; } if (task.IsFaulted) { Debug.LogError("SignInAndRetrieveDataWithCredentialAsync encountered an error: " + task.Exception); return; } Firebase.Auth.AuthResult result = task.Result; Debug.LogFormat("User signed in successfully: {0} ({1})", result.User.DisplayName, result.User.UserId); });
Önerilen: E-posta numaralandırma korumasını etkinleştir
E-posta adreslerini parametre olarak alan bazı Firebase Kimlik Doğrulama yöntemleri, e-posta adresinin kaydedilmesi gerektiğinde (örneğin, bir e-posta adresi ve şifreyle oturum açarken) kayıtlı olmaması veya kullanılmaması gerektiğinde kaydedilmesi (örneğin, bir kullanıcının e-posta adresini değiştirirken). Bu, kullanıcılara belirli çareler önermek için yararlı olsa da, kullanıcılarınız tarafından kaydedilen e-posta adreslerini keşfetmek için kötü niyetli aktörler tarafından da kötüye kullanılabilir.
Bu riski azaltmak için Google Cloud gcloud
aracını kullanarak projeniz için e-posta numaralandırma korumasını etkinleştirmenizi öneririz. Bu özelliğin etkinleştirilmesinin Firebase Authentication'ın hata raporlama davranışını değiştirdiğini unutmayın: uygulamanızın daha spesifik hatalara dayanmadığından emin olun.
Sonraki adımlar
Bir kullanıcı ilk kez oturum açtıktan sonra, yeni bir kullanıcı hesabı oluşturulur ve kullanıcının oturum açtığı kimlik bilgilerine (yani, kullanıcı adı ve parolası, telefon numarası veya kimlik doğrulama sağlayıcı bilgileri) bağlanır. Bu yeni hesap, Firebase projenizin bir parçası olarak saklanır ve kullanıcının nasıl oturum açtığına bakılmaksızın projenizdeki her uygulamada bir kullanıcıyı tanımlamak için kullanılabilir.
Uygulamalarınızda, kullanıcının temel profil bilgilerini
Firebase.Auth.FirebaseUser
nesnesinden alabilirsiniz:Firebase.Auth.FirebaseUser user = auth.CurrentUser; if (user != null) { string name = user.DisplayName; string email = user.Email; System.Uri photo_url = user.PhotoUrl; // 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 User.TokenAsync() instead. string uid = user.UserId; }
Firebase Gerçek Zamanlı Veritabanı ve Bulut Depolama Güvenlik Kurallarınızda , oturum açmış kullanıcının benzersiz kullanıcı kimliğini
auth
değişkeninden alabilir ve bunu, bir kullanıcının hangi verilere erişebileceğini kontrol etmek için kullanabilirsiniz.
Bir kullanıcının oturumunu kapatmak için SignOut()
arayın:
auth.SignOut();