Anda dapat menggunakan Firebase Authentication untuk membuat dan menggunakan akun anonim sementara untuk melakukan autentikasi dengan Firebase. Dengan akun anonim sementara ini, pengguna yang belum mendaftar ke aplikasi Anda dapat menggunakan data yang dilindungi oleh aturan keamanan. Jika pengguna anonim memutuskan untuk mendaftar ke aplikasi Anda, tautkan kredensial login mereka ke akun anonim agar mereka dapat terus menggunakan data yang dilindungi pada sesi-sesi selanjutnya.
Sebelum memulai
- Tambahkan Firebase ke project C++ Anda.
- Jika Anda belum menghubungkan aplikasi ke project Firebase, lakukanlah dari Firebase console.
- Aktifkan autentikasi anonim:
- Di Firebase console, buka bagian Auth.
- Di halaman Metode Login, aktifkan metode login Anonim.
Melakukan autentikasi dengan Firebase secara anonim
Ketika pengguna yang tidak login menggunakan fitur aplikasi yang mengharuskan autentikasi menggunakan Firebase, buat agar pengguna tersebut login secara anonim dengan mengikuti langkah-langkah berikut:
ClassAuth
adalah gateway untuk semua panggilan API.- Tambahkan file header Auth dan Aplikasi:
#include "firebase/app.h" #include "firebase/auth.h"
- Pada kode inisialisasi Anda, buat class
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__)
- Dapatkan class
firebase::auth::Auth
untukfirebase::App
Anda. Terdapat fungsi pemetaan one-to-one antaraApp
danAuth
.firebase::auth::Auth* auth = firebase::auth::Auth::GetAuth(app);
Auth::SignInAnonymously
.
firebase::Future<firebase::auth::User*> result = auth->SignInAnonymously();
Auth::SignInAnonymouslyLastResult
: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 dikendalikan oleh peristiwa, Anda bisa memilih untuk mendaftarkan callback pada Future.
Mengubah akun anonim menjadi akun permanen
Ketika pengguna anonim mendaftar ke aplikasi, Anda dapat memungkinkan mereka melanjutkan aktivitas dengan akun yang baru dibuat. Misalnya, Anda dapat mempertahankan item yang ditambahkan pengguna sebelum mendaftar agar tetap berada di keranjang belanja pada akun baru mereka. Caranya, ikuti langkah-langkah berikut:
- Ketika pengguna mendaftar, selesaikan alur login untuk penyedia autentikasi pengguna tersebut hingga, tetapi sebelum, memanggil salah satu metode
Auth::SignInWith
. Misalnya, dapatkan token ID Google, token akses Facebook, atau alamat email dan sandi pengguna tersebut. Dapatkan
Login dengan Googleauth::Credential
untuk penyedia autentikasi baru:firebase::auth::Credential credential = firebase::auth::GoogleAuthProvider::GetCredential(google_id_token, nullptr);
Login dengan Facebookfirebase::auth::Credential credential = firebase::auth::FacebookAuthProvider::GetCredential(access_token);
Login dengan email-sandifirebase::auth::Credential credential = firebase::auth::EmailAuthProvider::GetCredential(email, password);
Teruskan objek
auth::Credential
ke metodeLinkWithCredential
pengguna yang login:// 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.
Langkah berikutnya
Setelah pengguna dapat melakukan autentikasi dengan Firebase, Anda dapat mengontrol akses mereka ke data di database Firebase Anda menggunakan aturan Firebase.