Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

Memulai dengan Firebase Authentication di Unity

Anda dapat menggunakan Firebase Authentication untuk mengizinkan pengguna masuk ke game Anda menggunakan satu atau beberapa metode masuk, termasuk alamat email dan kata sandi masuk, dan penyedia identitas federasi seperti Masuk dengan Google dan Masuk dengan Facebook. Tutorial ini membantu Anda memulai Firebase Authentication dengan menunjukkan cara menambahkan alamat email dan kata sandi masuk ke game Anda.

Sebelum kamu memulai

Sebelum dapat menggunakan Firebase Authentication , Anda perlu:

  • Daftarkan proyek Unity Anda dan konfigurasikan untuk menggunakan Firebase.

    • Jika project Unity Anda sudah menggunakan Firebase, maka project tersebut sudah terdaftar dan dikonfigurasi untuk Firebase.

    • Jika Anda tidak memiliki proyek Unity, Anda dapat mengunduh contoh aplikasi .

  • Tambahkan Firebase Unity SDK (khususnya, FirebaseAuth.unitypackage ) ke proyek Unity Anda.

Perhatikan bahwa menambahkan Firebase ke proyek Unity Anda melibatkan tugas di konsol Firebase dan di proyek Unity terbuka Anda (misalnya, Anda mengunduh file konfigurasi Firebase dari konsol, lalu memindahkannya ke proyek Unity Anda).

Mendaftar pengguna baru

Buat formulir yang memungkinkan pengguna baru untuk mendaftar ke game Anda menggunakan alamat email dan kata sandi mereka. Saat pengguna melengkapi formulir, validasi alamat email dan kata sandi yang diberikan oleh pengguna, lalu teruskan ke metode 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);
});

Login pengguna yang sudah ada

Buat formulir yang memungkinkan pengguna yang ada untuk masuk menggunakan alamat email dan kata sandi mereka. Saat pengguna melengkapi formulir, panggil metode SignInWithEmailAndPasswordAsync :

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

Tetapkan pengendali peristiwa perubahan status autentikasi dan dapatkan data pengguna

Untuk merespons kejadian masuk dan keluar, lampirkan pengendali kejadian ke objek autentikasi global. Penangan ini dipanggil setiap kali status masuk pengguna berubah. Karena penangan berjalan hanya setelah objek autentikasi diinisialisasi sepenuhnya dan setelah semua panggilan jaringan selesai, ini adalah tempat terbaik untuk mendapatkan informasi tentang pengguna yang masuk.

Daftarkan pengendali peristiwa menggunakan bidang StateChanged objek FirebaseAuth . Saat pengguna berhasil masuk, Anda bisa mendapatkan informasi tentang pengguna di event handler.

Terakhir, ketika objek ini telah dipanggil Destroy , ia akan secara otomatis memanggil OnDestroy . Bersihkan referensi objek Auth di OnDestroy .

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

void OnDestroy() {
  auth.StateChanged -= AuthStateChanged;
  auth = null;
}

Langkah selanjutnya

Pelajari cara menambahkan dukungan untuk penyedia identitas lain dan akun tamu anonim: