Catch up on everthing we announced at this year's Firebase Summit. Learn more

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

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

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

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

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

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

Auth בכיתה היא השער עבור כל השיחות API.
  1. מוסיפים את קבצי הכותרת המחבר ואת App:
    #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 של המשתמש, אסימון הגישה לפייסבוק או כתובת הדוא"ל והסיסמה.
    2. קבל auth::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);
      
    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, אתה יכול לשלוט בגישה שלהם נתונים במסד הנתונים Firebase באמצעות כללים Firebase .