Google is committed to advancing racial equity for Black communities. See how.
דף זה תורגם על ידי Cloud Translation API.
Switch to English

התחל בעבודה עם אימות Firebase ב- C ++

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

חבר את פרויקט C ++ שלך ל- Firebase

לפני שתוכל להשתמש באימות Firebase , עליך:

  • רשום את פרויקט C ++ שלך והגדר אותו לשימוש ב- Firebase.

    אם פרויקט C ++ שלך כבר משתמש ב- Firebase, הוא כבר רשום ומוגדר ל- Firebase.

  • הוסף את Firebase C ++ SDK לפרויקט C ++ שלך.

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

הרשמו משתמשים חדשים

צור טופס המאפשר למשתמשים חדשים להירשם לאפליקציה שלך באמצעות כתובת הדוא"ל והסיסמה שלהם. כאשר משתמש CreateUserWithEmailAndPassword את הטופס, אמת את כתובת הדוא"ל והסיסמה שסופקו על ידי המשתמש, ולאחר מכן העביר אותם לשיטת CreateUserWithEmailAndPassword :

firebase::Future<firebase::auth::User*> result =
    auth->CreateUserWithEmailAndPassword(email, password);

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

לדוגמא, שימוש בעתיד:

firebase::Future<firebase::auth::User*> result =
    auth->CreateUserWithEmailAndPasswordLastResult();

// The lambda has the same signature as the callback function.
result.OnCompletion(
    [](const firebase::Future<firebase::auth::User*>& result,
       void* user_data) {
      // `user_data` is the same as &my_program_context, below.
      // Note that we can't capture this value in the [] because std::function
      // is not supported by our minimum compiler spec (which is pre C++11).
      MyProgramContext* program_context =
          static_cast<MyProgramContext*>(user_data);

      // Process create user result...
      (void)program_context;
    },
    &my_program_context);

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

firebase::Future<firebase::auth::User*> result =
    auth->CreateUserWithEmailAndPasswordLastResult();
if (result.status() == firebase::kFutureStatusComplete) {
  if (result.error() == firebase::auth::kAuthErrorNone) {
    firebase::auth::User* user = *result.result();
    printf("Create user succeeded for email %s\n", user->email().c_str());
  } else {
    printf("Created user failed with error '%s'\n", result.error_message());
  }
}

היכנס למשתמשים קיימים

צור טופס המאפשר למשתמשים קיימים להיכנס באמצעות כתובת הדוא"ל והסיסמה שלהם. כאשר משתמש SignInWithEmailAndPassword את הטופס, התקשר לשיטת SignInWithEmailAndPassword :

firebase::Future<firebase::auth::User*> result =
    auth->SignInWithEmailAndPassword(email, password);

קבל את התוצאה של פעולת הכניסה באותו אופן שקיבלת את תוצאת ההרשמה.

הגדר מאזין למצב אימות וקבל נתוני חשבון

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

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

class MyAuthStateListener : public firebase::auth::AuthStateListener {
 public:
  void OnAuthStateChanged(firebase::auth::Auth* auth) override {
    firebase::auth::User* user = auth->current_user();
    if (user != nullptr) {
      // User is signed in
      printf("OnAuthStateChanged: signed_in %s\n", user->uid().c_str());
      const std::string displayName = user->DisplayName();
      const std::string emailAddress = user->Email();
      const std::string photoUrl = user->PhotoUrl();
    } else {
      // User is signed out
      printf("OnAuthStateChanged: signed_out\n");
    }
    // ...
  }
};

צרף את המאזין באמצעות firebase::auth::Auth של אובייקט השיטה AddAuthStateListener :

MyAuthStateListener state_change_listener;
auth->AddAuthStateListener(&state_change_listener);

הצעדים הבאים

למד כיצד להוסיף תמיכה לספקי זהות אחרים ולחשבונות אורחים אנונימיים: