Вы можете использовать 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();