Buka konsol

Memulai Firebase Authentication di Unity

Anda dapat menggunakan Firebase Authentication agar pengguna bisa login ke game menggunakan salah satu atau beberapa metode login, termasuk login dengan alamat email dan sandi, serta login dengan penyedia identitas tergabung, seperti Login dengan Google dan Login dengan Facebook. Tutorial ini akan memandu Anda memulai Firebase Authentication dengan menunjukkan cara menambahkan login dengan alamat email dan sandi ke game Anda.

Sebelum memulai

Sebelum dapat menggunakan Firebase Authentication, Anda harus:

  • Mendaftarkan project Unity Anda dan mengonfigurasikannya untuk menggunakan Firebase.

    • Jika project Unity Anda telah menggunakan Firebase, berarti project tersebut telah terdaftar dan dikonfigurasikan untuk Firebase.

    • Jika belum memiliki project Unity, Anda dapat mendownload aplikasi contoh.

  • Menambahkan Firebase Unity SDK (khususnya, FirebaseAuth.unitypackage) ke project Unity Anda.

Perlu diperhatikan bahwa menambahkan Firebase ke project Unity Anda melibatkan tugas di Firebase console dan di project Unity yang terbuka (misalnya, Anda mendownload file konfigurasi Firebase dari konsol, lalu memindahkannya ke project Unity).

Mendaftarkan pengguna baru

Buat formulir di mana pengguna baru bisa mendaftarkan diri ke game Anda menggunakan alamat email dan sandi mereka. Saat pengguna menyelesaikan formulirnya, validasikan alamat email dan sandi yang diberikan 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);
});

Membuat pengguna yang ada agar login

Buat formulir yang memungkinkan pengguna yang sudah ada untuk login menggunakan alamat email dan sandinya. Setelah 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);
});

Menyetel pengendali peristiwa perubahan status autentikasi dan mendapatkan data pengguna

Untuk merespons peristiwa login dan logout, pasang pengendali peristiwa ke objek autentikasi global. Pengendali ini dipanggil kapan pun status login pengguna berubah. Karena pengendali berjalan hanya setelah objek autentikasi diinisialisasi sepenuhnya dan setelah panggilan jaringan selesai, ini adalah tempat terbaik untuk mendapatkan informasi tentang pengguna yang login.

Daftarkan pengendali peristiwa melalui kolom StateChanged dari objek FirebaseAuth. Saat pengguna berhasil login, Anda bisa mendapatkan informasi tentang pengguna tersebut di pengendali peristiwa.

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

Langkah berikutnya

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