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

Otentikasi dengan Firebase Secara Anonim Menggunakan C++

Anda dapat menggunakan Firebase Authentication untuk membuat dan menggunakan akun anonim sementara untuk mengautentikasi dengan Firebase. Akun anonim sementara ini dapat digunakan untuk memungkinkan pengguna yang belum mendaftar ke aplikasi Anda untuk bekerja dengan data yang dilindungi oleh aturan keamanan. Jika pengguna anonim memutuskan untuk mendaftar ke aplikasi Anda, Anda dapat menautkan kredensial masuk mereka ke akun anonim sehingga mereka dapat terus bekerja dengan data mereka yang dilindungi di sesi mendatang.

Sebelum kamu memulai

  1. Tambahkan Firebase ke proyek C++ Anda .
  2. Jika Anda belum menghubungkan aplikasi ke proyek Firebase, lakukan dari Firebase console .
  3. Aktifkan otentikasi anonim:
    1. Di Firebase console , buka bagian Auth .
    2. Pada halaman Metode Masuk , aktifkan metode masuk Anonim .
    3. Opsional : Jika Anda telah mengupgrade proyek ke Firebase Authentication dengan Identity Platform , Anda dapat mengaktifkan pembersihan otomatis. Saat Anda mengaktifkan setelan ini, akun anonim yang lebih lama dari 30 hari akan dihapus secara otomatis. Dalam proyek dengan pembersihan otomatis yang diaktifkan, autentikasi anonim tidak akan lagi diperhitungkan dalam batas penggunaan atau kuota penagihan. Lihat Pembersihan otomatis .

Otentikasi dengan Firebase secara anonim

Saat pengguna yang logout menggunakan fitur aplikasi yang memerlukan autentikasi dengan Firebase, login pengguna secara anonim dengan menyelesaikan langkah-langkah berikut:

Kelas Auth adalah gerbang untuk semua panggilan API.
  1. Tambahkan file header Auth dan Aplikasi:
    #include "firebase/app.h"
    #include "firebase/auth.h"
    
  2. Dalam kode inisialisasi Anda, buat kelas firebase::App .
    #if defined(__ANDROID__)
      firebase::App* app =
          firebase::App::Create(firebase::AppOptions(), my_jni_env, my_activity);
    #else
      firebase::App* app = firebase::App::Create(firebase::AppOptions());
    #endif  // defined(__ANDROID__)
    
  3. Dapatkan kelas firebase::auth::Auth untuk firebase::App Anda. Ada pemetaan satu-ke-satu antara App dan Auth .
    firebase::auth::Auth* auth = firebase::auth::Auth::GetAuth(app);
    
  • Panggil Auth::SignInAnonymously .
    firebase::Future<firebase::auth::User*> result = auth->SignInAnonymously();
    
  • Jika program Anda memiliki loop pembaruan yang berjalan secara teratur (misalnya 30 atau 60 kali per detik), Anda dapat memeriksa hasilnya sekali per pembaruan dengan Auth::SignInAnonymouslyLastResult : l10n
    firebase::Future<firebase::auth::User*> result =
        auth->SignInAnonymouslyLastResult();
    if (result.status() == firebase::kFutureStatusComplete) {
      if (result.error() == firebase::auth::kAuthErrorNone) {
        firebase::auth::User* user = *result.result();
        printf("Sign in succeeded for `%s`\n", user->display_name().c_str());
      } else {
        printf("Sign in failed with error '%s'\n", result.error_message());
      }
    }
    
    Atau, jika program Anda didorong oleh peristiwa, Anda dapat memilih untuk mendaftarkan panggilan balik di Masa Depan .
  • Ubah akun anonim menjadi akun permanen

    Saat pengguna anonim mendaftar ke aplikasi Anda, Anda mungkin ingin mengizinkan mereka melanjutkan pekerjaannya dengan akun baru mereka—misalnya, Anda mungkin ingin membuat item yang ditambahkan pengguna ke keranjang belanja mereka sebelum mereka mendaftar tersedia di akun baru mereka. keranjang belanja akun. Untuk melakukannya, selesaikan langkah-langkah berikut:

    1. Saat pengguna mendaftar, selesaikan alur masuk untuk penyedia autentikasi pengguna hingga, tetapi tidak termasuk, memanggil salah satu metode Auth::SignInWith . Misalnya, dapatkan token ID Google pengguna, token akses Facebook, atau alamat email dan kata sandi.
    2. Dapatkan auth::Credential untuk penyedia otentikasi baru:

      Masuk dengan Google
      firebase::auth::Credential credential =
          firebase::auth::GoogleAuthProvider::GetCredential(google_id_token,
                                                            nullptr);
      
      Facebook Login
      firebase::auth::Credential credential =
          firebase::auth::FacebookAuthProvider::GetCredential(access_token);
      
      Masuk email-sandi
      firebase::auth::Credential credential =
          firebase::auth::EmailAuthProvider::GetCredential(email, password);
      
    3. Teruskan objek auth::Credential ke metode LinkWithCredential pengguna yang masuk:

      // Link the new credential to the currently active user.
      firebase::auth::User* current_user = auth->current_user();
      firebase::Future<firebase::auth::User*> result =
          current_user->LinkWithCredential(credential);
      

    Jika panggilan ke LinkWithCredential berhasil, akun baru pengguna dapat mengakses data Firebase akun anonim.

    Pembersihan otomatis

    Jika Anda telah meningkatkan versi proyek ke Firebase Authentication dengan Identity Platform , Anda dapat mengaktifkan pembersihan otomatis di Firebase console. Saat Anda mengaktifkan fitur ini, Anda mengizinkan, Firebase untuk secara otomatis menghapus akun anonim yang lebih lama dari 30 hari. Dalam proyek dengan pembersihan otomatis yang diaktifkan, autentikasi anonim tidak akan diperhitungkan dalam batas penggunaan atau kuota penagihan.

    • Setiap akun anonim yang dibuat setelah mengaktifkan pembersihan otomatis dapat dihapus secara otomatis kapan saja setelah 30 hari setelah pembuatan.
    • Akun anonim yang dibuat sebelum mengaktifkan pembersihan otomatis akan memenuhi syarat untuk penghapusan otomatis mulai 30 hari setelah mengaktifkan pembersihan otomatis.
    • Jika Anda mematikan pembersihan otomatis, semua akun anonim yang dijadwalkan untuk dihapus akan tetap dijadwalkan untuk dihapus. Akun ini tidak diperhitungkan dalam batas penggunaan atau kuota penagihan.
    • Jika Anda "meningkatkan" akun anonim dengan menautkannya ke metode masuk apa pun, akun tidak akan dihapus secara otomatis.

    Jika Anda ingin melihat berapa banyak pengguna yang akan terpengaruh sebelum Anda mengaktifkan fitur ini, dan Anda telah mengupgrade proyek Anda ke Firebase Authentication dengan Identity Platform , Anda dapat memfilter menurut is_anon di Cloud Logging .

    Langkah selanjutnya

    Setelah pengguna dapat mengautentikasi dengan Firebase, Anda dapat mengontrol akses mereka ke data di database Firebase Anda menggunakan aturan Firebase .