Kullanıcıların, e-posta adresi ve şifreyle oturum açma dahil bir veya daha fazla oturum açma yöntemini ve Google Oturum Açma ve Facebook Oturum Açma gibi birleştirilmiş kimlik sağlayıcılarını kullanarak oyununuzda oturum açmasına izin vermek için Firebase Kimlik Doğrulamasını kullanabilirsiniz. Bu eğitim, oyununuza e-posta adresi ve şifreyle giriş yapmayı nasıl ekleyeceğinizi göstererek Firebase Authentication'ı kullanmaya başlamanızı sağlar.
Sen başlamadan önce
Firebase Authentication'ı kullanabilmeniz için ş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.
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 kaydedin
Yeni kullanıcıların e-posta adreslerini ve şifrelerini kullanarak oyununuza kaydolmalarına olanak tanıyan bir form oluşturun. Kullanıcı formu tamamladığında, kullanıcı tarafından sağlanan e-posta adresini ve parolayı doğrulayın ve 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ılarda oturum açın
Mevcut kullanıcıların e-posta adreslerini ve şifrelerini kullanarak oturum açmalarına olanak tanıyan bir form oluşturun. Kullanıcı formu tamamladığında 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şikliği olay işleyicisini ayarlayın ve kullanıcı verilerini alın
Oturum açma ve oturum kapatma olaylarına yanıt vermek için genel kimlik doğrulama nesnesine bir olay işleyicisi ekleyin. Bu işleyici, kullanıcının oturum açma durumu değiştiğinde çağrılır. İşleyici yalnızca kimlik doğrulama nesnesi tam olarak başlatıldıktan ve tüm ağ çağrıları tamamlandıktan sonra çalıştığından, oturum açan kullanıcı hakkında bilgi almak için en iyi yerdir.
FirebaseAuth
nesnesinin StateChanged
alanını kullanarak olay işleyicisini kaydedin. Bir kullanıcı başarıyla oturum açtığında, olay işleyicisinde kullanıcı hakkında bilgi alabilirsiniz.
Son olarak, bu nesne üzerinde Destroy
çağrıldığında, otomatik olarak OnDestroy
çağıracaktır. Auth nesnesinin referanslarını OnDestroy
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 konuk hesapları için nasıl destek ekleyeceğinizi öğrenin: