Google 致力于为黑人社区推动种族平等。查看具体举措

אימות עם Firebase באופן אנונימי באמצעות C++

אתה יכול להשתמש באימות Firebase כדי ליצור ולהשתמש בחשבונות אנונימיים זמניים כדי לבצע אימות עם Firebase. ניתן להשתמש בחשבונות אנונימיים זמניים אלה כדי לאפשר למשתמשים שעדיין לא נרשמו לאפליקציה שלך לעבוד עם נתונים המוגנים על ידי כללי אבטחה. אם משתמש אנונימי מחליט להירשם לאפליקציה שלך, תוכל לקשר את אישורי הכניסה שלו לחשבון האנונימי כדי שיוכל להמשיך לעבוד עם הנתונים המוגנים שלו במפגשים עתידיים.

לפני שאתה מתחיל

  1. הוסף את Firebase לפרויקט C++ שלך .
  2. אם עדיין לא חיברת את האפליקציה שלך לפרויקט Firebase שלך, עשה זאת ממסוף Firebase .
  3. אפשר אימות אנונימי:
    1. במסוף Firebase , פתח את הקטע Auth .
    2. בדף שיטות כניסה , הפעל את שיטת הכניסה אנונימית .
    3. אופציונלי : אם שדרגת את הפרויקט שלך לאימות Firebase עם Identity Platform , תוכל להפעיל ניקוי אוטומטי. כאשר תפעיל הגדרה זו, חשבונות אנונימיים מעל 30 יום יימחקו אוטומטית. בפרויקטים עם ניקוי אוטומטי מופעל, אימות אנונימי לא ייחשב עוד עבור מגבלות השימוש או מכסות החיוב. ראה ניקוי אוטומטי .

בצע אימות אנונימי עם Firebase

כאשר משתמש מנותק משתמש בתכונת אפליקציה הדורשת אימות עם Firebase, היכנס למשתמש באופן אנונימי על ידי השלמת השלבים הבאים:

מחלקת Auth היא השער לכל קריאות ה-API.
  1. הוסף את קובצי ה-Auth ו-App header:
    #include "firebase/app.h"
    #include "firebase/auth.h"
    
  2. בקוד האתחול שלך, צור מחלקה של 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. רכוש את מחלקת 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();
    
  • אם לתוכנית שלך יש לולאת עדכון שפועלת באופן קבוע (נניח 30 או 60 פעמים בשנייה), אתה יכול לבדוק את התוצאות פעם אחת בכל עדכון עם 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());
      }
    }
    
    או, אם התוכנית שלך מונעת על ידי אירועים, אולי תעדיף כדי לרשום התקשרות חוזרת על העתיד .
  • המרת חשבון אנונימי לחשבון קבוע

    כאשר משתמש אנונימי נרשם לאפליקציה שלך, ייתכן שתרצה לאפשר לו להמשיך בעבודתו עם החשבון החדש שלו - לדוגמה, ייתכן שתרצה להפוך את הפריטים שהמשתמש הוסיף לעגלת הקניות שלו לפני שנרשם לזמינים בחדש שלו. עגלת הקניות של החשבון. לשם כך, בצע את השלבים הבאים:

    1. כאשר המשתמש נרשם, השלם את זרימת הכניסה עבור ספק האימות של המשתמש עד, אך לא כולל, קריאה לאחת משיטות Auth::SignInWith . לדוגמה, קבל את אסימון ה-Google ID של המשתמש, אסימון הגישה לפייסבוק או כתובת דוא"ל וסיסמה.
    2. קבל אישור auth::Credential עבור ספק האימות החדש:

      כניסה של Google
      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);
      
    3. העבר את אובייקט ה- 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 עם Identity Platform , תוכל להפעיל ניקוי אוטומטי במסוף Firebase. כאשר אתה מפעיל תכונה זו אתה מאפשר, Firebase למחוק אוטומטית חשבונות אנונימיים מעל 30 יום. בפרויקטים עם ניקוי אוטומטי מופעל, אימות אנונימי לא ייחשב במסגרת מגבלות השימוש או מכסות החיוב.

    • כל חשבונות אנונימיים שנוצרו לאחר הפעלת ניקוי אוטומטי עשויים להימחק אוטומטית בכל עת לאחר 30 יום לאחר היצירה.
    • חשבונות אנונימיים שנוצרו לפני הפעלת הניקוי האוטומטי יהיו זכאים למחיקה אוטומטית החל מ-30 יום לאחר הפעלת הניקוי האוטומטי.
    • אם תכבה את הניקוי האוטומטי, כל חשבונות אנונימיים שתוכננו להימחק יישארו מתוכננים להימחק. חשבונות אלה אינם נחשבים למגבלות השימוש או מכסות החיוב.
    • אם "משדרגים" חשבון אנונימי על ידי קישורו לשיטת כניסה כלשהי, החשבון לא יימחק אוטומטית.

    אם אתה רוצה לראות כמה משתמשים יושפעו לפני שתפעיל תכונה זו, ושדרגת את הפרויקט שלך לאימות Firebase עם Identity Platform , תוכל לסנן לפי is_anon ב- Cloud Logging .

    הצעדים הבאים

    כעת, כשמשתמשים יכולים לבצע אימות באמצעות Firebase, אתה יכול לשלוט בגישה שלהם לנתונים במסד הנתונים שלך ב-Firebase באמצעות כללי Firebase .