Unity'de Firebase Authentication'ı Kullanmaya Başlama

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.

ziyaret edin.

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: