Вы можете использовать аутентификацию Firebase, чтобы позволить вашим пользователям аутентифицироваться в 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 вы можете получить уникальный идентификатор пользователя, вошедшего в систему, из переменной auth
и использовать его для управления тем, к каким данным пользователь может получить доступ.
Вы можете разрешить пользователям входить в ваше приложение с помощью нескольких поставщиков аутентификации , привязав учетные данные поставщика аутентификации к существующей учетной записи пользователя.
Чтобы выйти из системы, вызовите signOut()
:
await FirebaseAuth.instance.signOut();