Kullanıcıların e-posta adresi ve şifreyle oturum açma gibi bir veya daha fazla oturum açma yöntemi ve Google ile Oturum Açma ve Facebook'a Giriş gibi birleşik kimlik sağlayıcıları kullanarak oyununuzda oturum açmasına izin vermek için Firebase Authentication'ı kullanabilirsiniz. Bu eğitim, oyununuza e-posta adresi ve şifre oturum açma bilgilerini nasıl ekleyeceğinizi göstererek Firebase Authentication'ı kullanmaya başlamanızı sağlar.
Başlamadan önce
Firebase Authentication'ı kullanabilmek için şunları yapmanız gerekir:
Unity projenizi kaydedin ve Firebase'i kullanacak şekilde yapılandırın.
Unity projeniz zaten Firebase'i kullanıyorsa Firebase için kaydedilmiş ve yapılandırılmış demektir.
Unity projeniz yoksa örnek bir uygulama indirebilirsiniz.
Unity projenize Firebase Unity SDK'yı (özellikle
FirebaseAuth.unitypackage
) ekleyin.
Firebase'i Unity projenize 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 indirir ve ardından bunları Unity projenize taşırsınız).
Yeni kullanıcılar için kaydolma
Yeni kullanıcıların e-posta adreslerini ve şifrelerini kullanarak oyununuza kaydolmasını sağlayan bir form oluşturun. Bir kullanıcı formu doldurduğunda kullanıcının sağladığı e-posta adresini ve şifreyi doğrulayın, ardından bunları CreateUserWithEmailAndPasswordAsync
yöntemine iletin:
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);
});
Mevcut kullanıcıların oturumunu açma
Mevcut kullanıcıların e-posta adreslerini ve şifrelerini kullanarak oturum açmasına izin veren bir form oluşturun. Kullanıcı formu doldurduğunda SignInWithEmailAndPasswordAsync
yöntemini çağırın:
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);
});
Kimlik doğrulama durumu değiştirme etkinlik işleyicisi ayarlama ve kullanıcı verilerini alma
Oturum açma ve oturum kapatma etkinliklerine yanıt vermek için genel kimlik doğrulama nesnesine bir etkinlik işleyici ekleyin. Bu işleyici, kullanıcının oturum açma durumu her değiştiğinde çağrılır. İşleyici yalnızca kimlik doğrulama nesnesi tamamen başlatıldıktan ve ağ çağrıları tamamlandıktan sonra çalıştığından, oturum açmış kullanıcıyla ilgili bilgi almak için en iyi yerdir.
FirebaseAuth
nesnesinin StateChanged
alanını kullanarak etkinlik işleyiciyi kaydedin. Bir kullanıcı başarıyla oturum açtığında etkinlik işleyicide kullanıcı hakkında bilgi alabilirsiniz.
Son olarak, bu nesne Destroy
çağrıldığında otomatik olarak OnDestroy
yöntemini çağırır. OnDestroy
içindeki Auth nesnesinin referanslarını temizleyin.
void InitializeFirebase() {
auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
auth.StateChanged += AuthStateChanged;
AuthStateChanged(this, null);
}
void AuthStateChanged(object sender, System.EventArgs eventArgs) {
if (auth.CurrentUser != user) {
bool signedIn = user != auth.CurrentUser && auth.CurrentUser != null
&& auth.CurrentUser.IsValid();
if (!signedIn && user != null) {
DebugLog("Signed out " + user.UserId);
}
user = auth.CurrentUser;
if (signedIn) {
DebugLog("Signed in " + user.UserId);
displayName = user.DisplayName ?? "";
emailAddress = user.Email ?? "";
photoUrl = user.PhotoUrl ?? "";
}
}
}
void OnDestroy() {
auth.StateChanged -= AuthStateChanged;
auth = null;
}
Sonraki adımlar
Diğer kimlik sağlayıcılar ve anonim misafir hesapları için nasıl destek ekleyeceğinizi öğrenin: