Google стремится продвигать расовую справедливость для черных сообществ. Смотри как.
Эта страница была переведа с помощью Cloud Translation API.
Switch to English

Начало работы с Firebase аутентификацией в C ++

Вы можете использовать Firebase Authentication, чтобы позволить пользователям входить в ваше приложение с помощью одного или нескольких признаков-методам, в том числе адрес электронной почты и пароль входа в федеративных и провайдеров удостоверений, таких как Google для входа в систему и Facebook Войти. Это руководство поможет вам начать работу с Firebase аутентификацией, показывая вам, как добавить адрес электронной почты и пароль для входа в систему для вашего приложения.

Подключение C ++ проекта вашего к Firebase

Перед тем, как можно использовать Firebase аутентификации , вам необходимо:

  • Зарегистрировать свой проект C ++ и настроить его на использование Firebase.

    Если ваш проект C ++ уже использует Firebase, то он уже зарегистрирован и настроен для Firebase.

  • В вашем проектном уровне build.gradle файл, не забудьте включить репозиторий Maven Google, как в вашем buildscript и allprojects секций.

  • Добавьте Firebase C ++ SDK для вашего проекта C ++.

Обратите внимание , что добавление Firebase к вашему C ++ проект включает в себя задачу , как в Firebase консоли и в вашем открытом проекте C ++ (например, загрузки Firebase конфигурационных файлов из консоли, а затем переместить их в C ++ проект).

Регистрация новых пользователей

Создайте форму, которая позволяет новым пользователям регистрироваться с приложением, используя адрес электронной почты и пароль. Когда пользователь заполняет форму, подтвердите адрес электронной почты и пароль , предоставленный пользователем, а затем передать их CreateUserWithEmailAndPassword методе:

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

Вы можете проверить статус операции создания учетной записи с помощью регистрации обратного вызова на CreateUserWithEmailAndPasswordLastResult объекта будущего, или, если вы пишете игру или приложение с каким - то периодическим циклом обновления, путем опросом состояния в цикле обновления.

Например, с помощью будущего:

 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 метод:

 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);
 

Следующие шаги

Узнайте, как добавить поддержку других идентификаторов и анонимные счета клиентов: