Kullanıcıların oyununuzda oturum açmalarına izin vermek için Firebase Authentication kullanabilirsiniz e-posta adresi ve şifreyle oturum açma gibi diğer oturum açma yöntemlerini ve Google ile Oturum Açma ve Facebook Girişi gibi birleşik kimlik sağlayıcılar. Bu nasıl ekleyeceğinizi göstererek Firebase Authentication kullanmaya başlamanızı sağlar e-posta adresi ve şifreyle oturum açarken sorun yaşayabilirsiniz.
Başlamadan önce
Kullanmadan önce Firebase Authentication Yapmanız gerekenler:
Unity projenizi kaydedin ve Firebase'i kullanacak şekilde yapılandırın.
Unity projeniz zaten Firebase kullanıyorsa kaydedilip yapılandırıldı.
Unity projeniz yoksa şunu indirebilirsiniz: örnek uygulama.
Firebase Unity SDK'sını (özellikle
FirebaseAuth.unitypackage
) şuraya ekleyin: derleyip toparlarsınız.
Firebase'i Unity projenize eklemenin hem Firebase konsolunda ve açık Unity projenizde (örneğin, Firebase yapılandırma dosyalarını konsoldan indirip bu dosyalara bunları Unity projenize ekleyin).
Yeni kullanıcılar için kaydolma
Yeni kullanıcıların e-posta adreslerini kullanarak oyununuza kaydolmasını sağlayan bir form oluşturun
bir şifre girin. Kullanıcı formu doldurduğunda e-postayı doğrulayın
tarafından sağlanan adresi ve şifreyi kullanıp
CreateUserWithEmailAndPasswordAsync
yöntem:
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 kullanarak oturum açmasına olanak tanıyan bir form oluşturun
ve şifre. Bir kullanıcı formu doldurduğunda
SignInWithEmailAndPasswordAsync
yöntem:
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 global kimlik doğrulama nesnesini tanımlayın. Bu işleyici, kullanıcı her oturum açtığında çağrılır kullanabilirsiniz. İşleyici yalnızca kimlik doğrulama nesnesi ve tüm ağ çağrıları tamamlandıktan sonra bu hedef her zaman en iyi oturum açmış kullanıcıyla ilgili bilgileri almak için
FirebaseAuth
nesnesinin StateChanged
öğesini kullanarak etkinlik işleyiciyi kaydedin
girin. Bir kullanıcı başarıyla oturum açtığında, kullanıcı hakkında bilgi alabilirsiniz
bilgileri de ekleyebilirsiniz.
Son olarak, bu nesne Destroy
çağrıldığında otomatik olarak
OnDestroy
. 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 konuklar için nasıl destek ekleyeceğinizi öğrenin hesaplar: