Как использовать метод sendEmailVerification()

#firebase #dart #flutter #firebase-authentication

#firebase #dart #флаттер #firebase-аутентификация

Вопрос:

Пытаюсь настроить пакет firebase_auth для метода аутентификации по электронной почте / паролю Firebase в Flutter, но нужна помощь с проверкой электронной почты.

Я столкнулся с методом sendEmailVerification();, предоставляемым пакетом firebase_auth, но мне нужен совет по его настройке. У кого-нибудь есть рабочий пример кода для подражания, пожалуйста?

 // From firebase_auth package docs > https://pub.dartlang.org/documentation/firebase_auth/latest/firebase_auth/FirebaseUser/sendEmailVerification.html

Future<void> sendEmailVerification() async {
  // TODO(amirh): remove this on when the invokeMethod update makes it to stable Flutter.
  // https://github.com/flutter/flutter/issues/26431
  // ignore: strong_mode_implicit_dynamic_method
  await FirebaseAuth.channel.invokeMethod(
      'sendEmailVerification', <String, String>{'app': _app.name});
}
  

Мы были бы весьма признательны за любую помощь, советы, указания по его правильной настройке и, по возможности, за рабочий пример кода, которому следует следовать.

Ответ №1:

Этот метод будет работать, если вы создадите FirebaseUser . Его можно использовать следующим образом:

 await _auth.createUserWithEmailAndPassword (
  email: //wherever you set their email,
  password: //wherever you set their password,
).then((FirebaseUser user) {
  //If a user is successfully created with an appropriate email
if (user != null){
  user.sendEmailVerification();
}
})
.catchError();
  

Комментарии:

1. Спасибо за это! не понял, FirebaseUser что это должно быть сделано.

2. @Effie Всегда пожалуйста! Подумайте о том, чтобы принять этот ответ, чтобы другие люди, у которых есть эта проблема, знали, как ее решить!

3. @R.Duggan выполняет ли пользователь автоматический вход с помощью sendEmailVerification()?

4. @WilliamHumphries Я полагаю, вам нужно будет взять пароль и адрес электронной почты, с помощью которых они вошли в систему, и получить от них AuthCredential для получения токена доступа, чтобы вы могли подтвердить, что это они. Для получения дополнительной информации ознакомьтесь с документацией пакета flutter firebase_auth по адресу pub.dev/packages/firebase_auth

5. Это идеально, но как запретить пользователю переходить на главный экран без предварительной проверки своей электронной почты?