Google is committed to advancing racial equity for Black communities. See how.
Эта страница была переведа с помощью Cloud Translation API.
Switch to English

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

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

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

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

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

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

  1. Импортируйте модуль Firebase в свой UIApplicationDelegate :

    Swift

    import Firebase

    Цель-C

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

    Swift

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

    Цель-C

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

    Swift

    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 :

    Swift

    import Firebase

    Цель-C

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

    Swift

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

    Цель-C

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

    Swift

    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 Realtime и правилах безопасности облачного хранилища вы можете получить уникальный идентификатор пользователя вошедшего в систему из переменной auth и использовать его для управления данными, к которым пользователь может получить доступ.

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

Чтобы выйти из системы, вызовите signOut:

Swift

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

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