Вы можете использовать Firebase Authentication, чтобы ваши пользователи могли аутентифицироваться в Firebase, используя адреса электронной почты и пароли.
Прежде чем вы начнете
Если вы еще этого не сделали, следуйте инструкциям в руководстве по началу работы.
Включить вход по электронной почте/паролю:
- В разделе « Аутентификация » консоли Firebase откройте страницу « Метод входа ».
- На странице « Метод входа » включите метод входа по электронной почте/паролю и нажмите « Сохранить » .
Создайте учетную запись на основе пароля
Чтобы создать новую учетную запись пользователя с паролем, вызовите метод createUserWithEmailAndPassword()
:
try {
final credential = await FirebaseAuth.instance.createUserWithEmailAndPassword(
email: emailAddress,
password: password,
);
} on FirebaseAuthException catch (e) {
if (e.code == 'weak-password') {
print('The password provided is too weak.');
} else if (e.code == 'email-already-in-use') {
print('The account already exists for that email.');
}
} catch (e) {
print(e);
}
Как правило, вы делаете это на экране регистрации вашего приложения. Когда новый пользователь регистрируется с помощью формы регистрации вашего приложения, выполните все шаги проверки новой учетной записи, которые требуются вашему приложению, например, убедитесь, что пароль новой учетной записи был правильно введен и соответствует вашим требованиям сложности.
Если новая учетная запись была создана успешно, пользователь также вошел в систему. Если вы прослушиваете изменения в состоянии аутентификации , вашим слушателям будет отправлено новое событие.
После создания новой учетной записи вы можете подтвердить адрес электронной почты пользователя .
Войдите в систему с адресом электронной почты и паролем
Шаги для входа пользователя с паролем аналогичны шагам для создания новой учетной записи. На экране входа в приложение вызовите signInWithEmailAndPassword()
:
try {
final credential = await FirebaseAuth.instance.signInWithEmailAndPassword(
email: emailAddress,
password: password
);
} on FirebaseAuthException catch (e) {
if (e.code == 'user-not-found') {
print('No user found for that email.');
} else if (e.code == 'wrong-password') {
print('Wrong password provided for that user.');
}
}
Следующие шаги
После того, как пользователь создает новую учетную запись, эта учетная запись сохраняется как часть вашего проекта Firebase и может использоваться для идентификации пользователя во всех приложениях вашего проекта, независимо от того, какой метод входа использовал пользователь.
В своих приложениях вы можете получить основную информацию о профиле пользователя из объекта User
. См. Управление пользователями .
В правилах безопасности Firebase Realtime Database и Cloud Storage вы можете получить уникальный идентификатор вошедшего пользователя из переменной auth
и использовать его для управления тем, к каким данным пользователь может получить доступ.
Вы можете разрешить пользователям входить в ваше приложение с помощью нескольких поставщиков проверки подлинности, связав учетные данные поставщика проверки подлинности с существующей учетной записью пользователя.
Чтобы выйти из системы, вызовите signOut()
:
await FirebaseAuth.instance.signOut();