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

Unity'de Firebase Authentication'ı Kullanmaya Başlayın

Firebase Authentication'ı, kullanıcıların e-posta adresi ve parola ile oturum açma ve Google ile Oturum Açma ve Facebook Oturumu gibi birleşik kimlik sağlayıcıları dahil olmak üzere bir veya daha fazla oturum açma yöntemi kullanarak oyununuzda oturum açmalarına izin vermek için kullanabilirsiniz. Bu eğitici, oyununuza e-posta adresi ve şifre ile oturum açmayı nasıl ekleyeceğinizi göstererek Firebase Kimlik Doğrulaması'na başlamanızı sağlar.

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, zaten kaydedilmiş ve Firebase için 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 projenizde görevler içerdiğini unutmayın (örneğin, Firebase yapılandırma dosyalarını konsoldan indirir, ardından bunları Unity projenize taşırsınız).

Yeni kullanıcılar kaydedin

Yeni kullanıcıların e-posta adreslerini ve parolalarını kullanarak oyununuza kaydolmalarına olanak tanıyan bir form oluşturun. Bir kullanıcı formu tamamladığında, kullanıcı tarafından sağlanan e-posta adresini ve şifreyi doğrulayın, ardından bunları 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ıları 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 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.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 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 her değiştiğinde çağrılır. İşleyici, yalnızca kimlik doğrulama nesnesi tam olarak başlatıldıktan ve herhangi bir ağ çağrısı tamamlandıktan sonra çalıştığından, oturum açmış kullanıcı hakkında bilgi almak için en iyi yer orasıdır.

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 ekleneceğini öğrenin: