Kullanıcılarınızın e-posta adreslerini ve şifrelerini kullanarak Firebase ile kimlik doğrulaması yapmasına izin vermek ve uygulamanızın şifre tabanlı hesaplarını yönetmek için Firebase Authentication'ı kullanabilirsiniz.
Sen başlamadan önce
Firebase Authentication'ı kullanmadan önce şunları yapmanız gerekir:
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ıştır.
Unity projeniz yoksa örnek bir uygulama indirebilirsiniz.
Firebase Unity SDK'sını (özellikle
FirebaseAuth.unitypackage
) Unity projenize ekleyin.
Unity projenize Firebase eklemenin hem Firebase konsolundaki hem de açık Unity projenizdeki görevleri içerdiğini unutmayın (örneğin, Firebase yapılandırma dosyalarını konsoldan indirirsiniz, 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
Parolayla 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 şifresinin doğru yazıldığını ve karmaşıklık gereksinimlerinizi karşıladığını doğrulamak gibi uygulamanızın gerektirdiği 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.FirebaseUser newUser = task.Result; Debug.LogFormat("Firebase user created successfully: {0} ({1})", newUser.DisplayName, newUser.UserId); });
Bir e-posta adresi ve şifre ile bir kullanıcı oturum açın
Bir kullanıcının 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 parolasını
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.FirebaseUser newUser = task.Result; Debug.LogFormat("User signed in successfully: {0} ({1})", newUser.DisplayName, newUser.UserId); });
- Ayrıca diğer iş akışları gibi kimlik bilgilerini oluşturabilir ve oturum açabilirsiniz:
Firebase.Auth.Credential credential = Firebase.Auth.EmailAuthProvider.GetCredential(email, password); auth.SignInWithCredentialAsync(credential).ContinueWith(task => { if (task.IsCanceled) { Debug.LogError("SignInWithCredentialAsync was canceled."); return; } if (task.IsFaulted) { Debug.LogError("SignInWithCredentialAsync encountered an error: " + task.Exception); return; } Firebase.Auth.FirebaseUser newUser = task.Result; Debug.LogFormat("User signed in successfully: {0} ({1})", newUser.DisplayName, newUser.UserId); });
Sonraki adımlar
Bir kullanıcı ilk kez oturum açtıktan sonra, yeni bir kullanıcı hesabı oluşturulur ve oturum açtığı kullanıcı adı ve parolası, telefon numarası veya yetkilendirme sağlayıcı bilgileri gibi kimlik bilgileriyle ilişkilendirilir. Bu yeni hesap, Firebase projenizin bir parçası olarak depolanır ve kullanıcının nasıl oturum açtığından bağımsız olarak 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ınız 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()
'u arayın:
auth.SignOut();