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

Аутентификация с помощью Firebase с использованием учетных записей на основе пароля на iOS

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

Прежде чем вы начнете

  1. Добавить Firebase в свой IOS проекта .

  2. Включите следующие стручки в вашем Podfile :

    pod 'Firebase/Auth'
    
  3. Если вы еще не подключили приложение к вашему проекту Firebase, сделать это из консоли Firebase .
  4. Включить вход по электронной почте / паролю:
    1. В Firebase консоли откройте раздел Auth.
    2. На вкладке Вход в метод, включите Email / пароль входа в методе и нажмите кнопку Сохранить.

Создать учетную запись на основе пароля

Чтобы создать новую учетную запись пользователя с паролем, выполните следующие действия в процессе входа в приложение:

  1. Импорт модуля Firebase в вашем UIApplicationDelegate :

    Быстрый

    import Firebase

    Цель-C

    @import Firebase;
  2. Настройте FirebaseApp общей экземпляр, как правило , в вашем приложении application:didFinishLaunchingWithOptions: метод:

    Быстрый

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    Цель-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
  3. Когда новый пользователь регистрируется с помощью формы регистрации вашего приложения, выполните все действия по проверке новой учетной записи, которые требуются вашему приложению, например, убедитесь, что пароль новой учетной записи введен правильно и соответствует вашим требованиям к сложности.
  4. Создать новую учетную запись, передавая адрес электронной почты нового пользователя и пароль для createUserWithEmail:email:password:completion: .

    Быстрый

    Auth.auth().createUser(withEmail: email, password: password) { authResult, error in
      // ...
    }

    Цель-C

    [[FIRAuth auth] createUserWithEmail:email
                               password:password
                             completion:^(FIRAuthDataResult * _Nullable authResult,
                                          NSError * _Nullable error) {
      // ...
    }];
    Если новая учетная запись была успешно создана, пользователь вошел в систему, и вы можете получить данные учетной записи пользователя из объекта результата, переданного методу обратного вызова.

Войдите в систему как пользователь с адресом электронной почты и паролем

Шаги для входа пользователя с паролем аналогичны шагам для создания новой учетной записи. В процессе входа в приложение сделайте следующее:

  1. Импорт модуля Firebase в вашем UIApplicationDelegate :

    Быстрый

    import Firebase

    Цель-C

    @import Firebase;
  2. Настройте FirebaseApp общей экземпляр, как правило , в вашем приложении application:didFinishLaunchingWithOptions: метод:

    Быстрый

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    Цель-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
  3. Когда пользователь входит в ваше приложение, передать адрес электронной почты пользователя и пароль для signInWithEmail:email:password:completion: .

    Быстрый

    Auth.auth().signIn(withEmail: email, password: password) { [weak self] authResult, error in
      guard let strongSelf = self else { return }
      // ...
    }

    Цель-C

    [[FIRAuth auth] signInWithEmail:self->_emailField.text
                           password:self->_passwordField.text
                         completion:^(FIRAuthDataResult * _Nullable authResult,
                                      NSError * _Nullable error) {
      // ...
    }];
    Если пользователь успешно входит в систему, вы можете получить данные учетной записи пользователя из объекта результата, переданного методу обратного вызова.

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

После того, как пользователь входит в систему в первый раз, создается новая учетная запись пользователя, связанная с учетными данными, то есть с именем пользователя и паролем, номером телефона или информацией о провайдере аутентификации, с которыми пользователь вошел в систему. Эта новая учетная запись хранится как часть вашего проекта Firebase и может использоваться для идентификации пользователя в каждом приложении в вашем проекте, независимо от того, как пользователь входит в систему.

  • В приложениях, вы можете получить основную информацию о профиле пользователя из FIRUser объекта. См Управление пользователей .

  • В вашей базе данных в реальном времени и Firebase Cloud Storage правил безопасности , вы можете получить подписанный в уникальном пользователя идентификатор пользователя из auth переменной и использовать его , чтобы контролировать , какие данные пользователь заходит может.

Вы можете позволить пользователям входить в ваше приложение с помощью нескольких поставщиков проверки подлинности с помощью ссылки AUTH учетных данных поставщика к существующему учетной записи пользователя.

Чтобы выйти пользователь, вызовите signOut: .

Быстрый

    let firebaseAuth = Auth.auth()
do {
  try firebaseAuth.signOut()
} catch let signOutError as NSError {
  print("Error signing out: %@", signOutError)
}
  

Цель-C

    NSError *signOutError;
BOOL status = [[FIRAuth auth] signOut:&signOutError];
if (!status) {
  NSLog(@"Error signing out: %@", signOutError);
  return;
}

Вы также можете добавить код обработки ошибок для всего диапазона ошибок аутентификации. См ошибки Берите .