Save the date - Google I/O returns May 18-20. Register to get the most out of the digital experience: Build your schedule, reserve space, participate in Q&As, earn Google Developer profile badges, and more. Register now
דף זה תורגם על ידי 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);

הצעדים הבאים

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