אתה יכול להשתמש באימות Firebase כדי ליצור ולהשתמש בחשבונות אנונימיים זמניים כדי לבצע אימות עם Firebase. ניתן להשתמש בחשבונות אנונימיים זמניים אלה כדי לאפשר למשתמשים שעדיין לא נרשמו לאפליקציה שלך לעבוד עם נתונים המוגנים על ידי כללי אבטחה. אם משתמש אנונימי מחליט להירשם לאפליקציה שלך, תוכל לקשר את אישורי הכניסה שלו לחשבון האנונימי כדי שיוכל להמשיך לעבוד עם הנתונים המוגנים שלו במפגשים עתידיים.
לפני שאתה מתחיל
- הוסף את Firebase לפרויקט C++ שלך .
- אם עדיין לא חיברת את האפליקציה שלך לפרויקט Firebase שלך, עשה זאת ממסוף Firebase .
- אפשר אימות אנונימי:
- במסוף Firebase , פתח את הקטע Auth .
- בדף שיטות כניסה , הפעל את שיטת הכניסה אנונימית .
בצע אימות עם Firebase באופן אנונימי
כאשר משתמש מנותק משתמש בתכונת אפליקציה הדורשת אימות עם Firebase, היכנס למשתמש באופן אנונימי על ידי השלמת השלבים הבאים:
מחלקתAuth
היא השער לכל קריאות ה-API.- הוסף את קובצי ה-Auth וה-App:
#include "firebase/app.h" #include "firebase/auth.h"
- בקוד האתחול שלך, צור מחלקה של
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__)
- רכוש את מחלקת
firebase::auth::Auth
עבור ה-firebase::App
שלך. יש מיפוי אחד לאחד ביןApp
ו-Auth
.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()); } }או, אם התוכנית שלך מונעת מאירועים, אולי תעדיף כדי לרשום התקשרות חוזרת על העתיד .
המרת חשבון אנונימי לחשבון קבוע
כאשר משתמש אנונימי נרשם לאפליקציה שלך, אולי תרצה לאפשר לו להמשיך בעבודתו עם החשבון החדש שלו - לדוגמה, ייתכן שתרצה להפוך את הפריטים שהמשתמש הוסיף לעגלת הקניות שלו לפני שנרשם לזמינים בחדש שלו. עגלת הקניות של החשבון. לשם כך, בצע את השלבים הבאים:
- כאשר המשתמש נרשם, השלם את זרימת הכניסה עבור ספק האימות של המשתמש עד, אך לא כולל, קריאה לאחת משיטות
Auth::SignInWith
. לדוגמה, קבל את אסימון ה-Google ID של המשתמש, אסימון הגישה לפייסבוק או כתובת אימייל וסיסמה. קבל אישור
כניסה של Googleauth::Credential
עבור ספק האימות החדש:firebase::auth::Credential credential = firebase::auth::GoogleAuthProvider::GetCredential(google_id_token, nullptr);
כניסה לפייסבוקfirebase::auth::Credential credential = firebase::auth::FacebookAuthProvider::GetCredential(access_token);
דוא"לfirebase::auth::Credential credential = firebase::auth::EmailAuthProvider::GetCredential(email, password);
העבר את אובייקט ה-
auth::Credential
לשיטתLinkWithCredential
של משתמש הכניסה:// 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);
אם השיחה ל- LinkWithCredential
תצליח, החשבון החדש של המשתמש יכול לגשת לנתוני Firebase של החשבון האנונימי.
הצעדים הבאים
כעת, כשמשתמשים יכולים לבצע אימות באמצעות Firebase, אתה יכול לשלוט בגישה שלהם לנתונים במסד הנתונים שלך ב-Firebase באמצעות כללי Firebase .