onAuthStateChanged не вызывается при проверке электронной почты во флаттере - PullRequest
0 голосов
/ 08 февраля 2019

Когда пользователь регистрируется в моем приложении, он получает письмо с подтверждением.onAuthStateChanged -Listener вызывается, когда пользователь создается с использованием createUserWithEmailAndPassword, но не после того, как электронное письмо было подтверждено.

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

Future<FirebaseUser> signUpUser(email, password) async {
final FirebaseUser user = await _auth.createUserWithEmailAndPassword(email: email, password: password);

assert (user != null);
assert (await user.getIdToken() != null);

return user;
}

Этот метод вызывается в моем StatefulWidget с использованием этого метода

void _signUpUser() async {
try {
  await Auth().signUpUser(_email, _password)
    ..sendEmailVerification();
} catch (e) {
  print(e.toString());
}
}

И onAuthStateChanged устанавливается в методе initStateмой StatefulWidget

  FirebaseAuth.instance.onAuthStateChanged.listen((user) {
  print("Auth State Changed!");
  if (user.isEmailVerified) {
    print("EMail verified!");
  }
  }

Ответы [ 2 ]

0 голосов
/ 21 июня 2019

В данный момент я предоставляю кнопку для «полной проверки электронной почты».Это вызывает User.reload - так что этого достаточно для комментария @Frank van Puffelen выше.Это гораздо менее удовлетворительно, чем получение события обновления статуса;Я могу реализовать цикл проверки статуса в течение определенного периода после отправки электронного письма, чтобы приложение проходило автоматически.

0 голосов
/ 08 февраля 2019

onAuthStatechanged срабатывает только в случае входа или выхода пользователя из системы, а не при проверке электронной почты.

Согласно Документ -

onAuthStatechanged Добавляет наблюдателядля изменения состояния входа пользователя.

Наблюдатель будет запущен в следующих сценариях:

  • Когда auth (). onAuthStateChanged () имеет значениепервым позвонил.Это сработает с начальным состоянием аутентификации.Если пользователь возвращается из операции auth (). SignInWithRedirect (), наблюдатель будет ожидать разрешения этой операции, прежде чем начнется ее запуск.

  • Когда новыйпользователь подписывает.

  • Когда уже зарегистрированный пользователь выходит из системы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...