Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

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

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

Sen başlamadan önce

Eğer 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, Firebase için zaten kayıtlı ve yapılandırılmıştır.

    • Eğer bir Birlik projesini yoksa, bir indirebilirsiniz örnek uygulamasını .

  • Ekle Firebase Birlik SDK'yı (özellikle FirebaseAuth.unitypackage sizin Birlik projesine).

Senin Birlik projesine Firebase ekleyerek hem işlemleri kapsar Not olduğunu Firebase konsolunda ve açık Birlik projesinde (örneğin, daha sonra, konsoldan Firebase yapılandırma dosyalarını indirmek için Birlik projesinin içine taşıyın).

Yeni kullanıcılar kaydolun

Yeni kullanıcıların e-posta adreslerini ve şifrelerini kullanarak oyununuza kaydolmalarını sağlayan bir form oluşturun. Bir kullanıcı formu tamamladığında, kullanıcı tarafından sağlanan e-posta adresini ve şifreyi doğrulamak ardından onları geçmek CreateUserWithEmailAndPasswordAsync yöntemiyle:

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 parolalarını kullanarak oturum açmalarına olanak tanıyan bir form oluşturun. Bir kullanıcı formu tamamladığında, çağrı SignInWithEmailAndPasswordAsync yöntemi:

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 tamamen başlatıldıktan ve herhangi bir ağ araması tamamlandıktan sonra çalıştığından, oturum açmış 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şleyicide 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 konuk hesapları için nasıl destek ekleyeceğinizi öğrenin: