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

Memulai dengan Firebase Authentication di C++

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

Hubungkan proyek C++ Anda ke Firebase

Sebelum Anda dapat menggunakan Firebase Authentication , Anda perlu:

  • Daftarkan proyek C++ Anda dan konfigurasikan untuk menggunakan Firebase.

    Jika proyek C++ Anda sudah menggunakan Firebase, maka proyek tersebut sudah terdaftar dan dikonfigurasi untuk Firebase.

  • Tambahkan Firebase C++ SDK ke proyek C++ Anda.

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

Daftarkan pengguna baru

Buat formulir yang memungkinkan pengguna baru mendaftar ke aplikasi 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 CreateUserWithEmailAndPassword :

firebase::Future<firebase::auth::User*> result =
    auth->CreateUserWithEmailAndPassword(email, password);

Anda dapat memeriksa status operasi pembuatan akun baik dengan mendaftarkan panggilan balik pada objek CreateUserWithEmailAndPasswordLastResult Future, atau, jika Anda sedang menulis game atau aplikasi dengan semacam loop pembaruan berkala, dengan polling status di loop pembaruan.

Misalnya, menggunakan Masa Depan:

firebase::Future<firebase::auth::User*> result =
    auth->CreateUserWithEmailAndPasswordLastResult();

// The lambda has the same signature as the callback function.
result.OnCompletion(
    [](const firebase::Future<firebase::auth::User*>& result,
       void* user_data) {
      // `user_data` is the same as &my_program_context, below.
      // Note that we can't capture this value in the [] because std::function
      // is not supported by our minimum compiler spec (which is pre C++11).
      MyProgramContext* program_context =
          static_cast<MyProgramContext*>(user_data);

      // Process create user result...
      (void)program_context;
    },
    &my_program_context);

Atau, untuk menggunakan polling, lakukan sesuatu seperti contoh berikut di loop pembaruan game Anda:

firebase::Future<firebase::auth::User*> result =
    auth->CreateUserWithEmailAndPasswordLastResult();
if (result.status() == firebase::kFutureStatusComplete) {
  if (result.error() == firebase::auth::kAuthErrorNone) {
    firebase::auth::User* user = *result.result();
    printf("Create user succeeded for email %s\n", user->email().c_str());
  } else {
    printf("Created user failed with error '%s'\n", result.error_message());
  }
}

Masuk pengguna yang ada

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

firebase::Future<firebase::auth::User*> result =
    auth->SignInWithEmailAndPassword(email, password);

Dapatkan hasil operasi masuk dengan cara yang sama seperti Anda mendapatkan hasil pendaftaran.

Setel pendengar status autentikasi dan dapatkan data akun

Untuk menanggapi peristiwa masuk dan keluar, lampirkan listener ke objek autentikasi global. Listener ini dipanggil setiap kali status login pengguna berubah. Karena listener hanya berjalan setelah objek autentikasi sepenuhnya diinisialisasi dan setelah panggilan jaringan apa pun selesai, itu adalah tempat terbaik untuk mendapatkan informasi tentang pengguna yang masuk.

Buat pendengar dengan menerapkan kelas abstrak firebase::auth::AuthStateListener . Misalnya, untuk membuat pemroses yang mendapatkan informasi tentang pengguna saat pengguna berhasil masuk:

class MyAuthStateListener : public firebase::auth::AuthStateListener {
 public:
  void OnAuthStateChanged(firebase::auth::Auth* auth) override {
    firebase::auth::User* user = auth->current_user();
    if (user != nullptr) {
      // User is signed in
      printf("OnAuthStateChanged: signed_in %s\n", user->uid().c_str());
      const std::string displayName = user->DisplayName();
      const std::string emailAddress = user->Email();
      const std::string photoUrl = user->PhotoUrl();
    } else {
      // User is signed out
      printf("OnAuthStateChanged: signed_out\n");
    }
    // ...
  }
};

Lampirkan listener dengan metode AddAuthStateListener objek firebase::auth::Auth :

MyAuthStateListener state_change_listener;
auth->AddAuthStateListener(&state_change_listener);

Langkah selanjutnya

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