Google is committed to advancing racial equity for Black communities. See how.
Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

Unity'deki Firebase Kimlik Doğrulamasına Başlayın

Firebase Kimlik Doğrulaması'nı kullanarak, kullanıcıların e-posta adresi ve şifre ile oturum açma da dahil olmak üzere bir veya daha fazla oturum açma yöntemini ve Google Oturum Açma ve Facebook Girişi gibi birleşik kimlik sağlayıcılarını kullanarak oyunda oturum açmasına izin verebilirsiniz. Bu eğitici, oyuna nasıl e-posta adresi ve parola oturum açma ekleyeceğinizi göstererek Firebase Kimlik Doğrulaması ile başlamanızı sağlar.

Sen başlamadan önce

Firebase Kimlik Doğrulamasını 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.

    • 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 projenizdeki görevleri içerdiğini unutmayın (örneğin, Firebase yapılandırma dosyalarını konsoldan indirir ve Unity projenize taşırsınız).

Yeni kullanıcılar kaydet

Yeni kullanıcıların e-posta adreslerini ve şifrelerini kullanarak oyununuza kaydolmalarını sağlayan bir form oluşturun. Bir kullanıcı formu doldurduğunda, kullanıcı tarafından sağlanan e-posta adresini ve parolayı doğrulayın ve ardından CreateUserWithEmailAndPasswordAsync yöntemine CreateUserWithEmailAndPasswordAsync :

 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);
});
 

Mevcut kullanıcılarda oturum açın

Mevcut kullanıcıların e-posta adreslerini ve şifrelerini kullanarak oturum açmalarına izin veren bir form oluşturun. Bir kullanıcı formu SignInWithEmailAndPasswordAsync , 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.FirebaseUser newUser = task.Result;
  Debug.LogFormat("User signed in successfully: {0} ({1})",
      newUser.DisplayName, newUser.UserId);
});
 

Bir kimlik doğrulama durumu değişikliği olay işleyicisi ayarlayın ve kullanıcı verilerini alın

Oturum açma ve çıkış yapma olaylarına yanıt vermek için genel kimlik doğrulama nesnesine bir olay 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 herhangi bir ağ çağrısı tamamlandıktan sonra çalıştığından, oturum açan kullanıcı hakkında bilgi almak için en iyi yerdir.

Kullanarak olay işleyicisi Kayıt FirebaseAuth nesnenin StateChanged alanını. Bir kullanıcı başarıyla oturum açtığında, olay işleyicisinde kullanıcı hakkında bilgi alabilirsiniz.

 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;
    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 ?? "";
    }
  }
}
 

Sonraki adımlar

Diğer kimlik sağlayıcıları ve anonim misafir hesapları için nasıl destek ekleyeceğinizi öğrenin: