isEmailVerified
может быть немного проблем для правильной работы. Удостоверьтесь, что вы звоните
await FirebaseAuth.instance.currentUser()..reload();
, прежде чем вы звоните isEmailVerified
также на своем собственном опыте, и я не знаю, если это просто что-то, что я делал неправильно, но это не сработало с моей Auth
Класс это не начал работать, пока я не поместил код непосредственно в initState()
моего виджета, который проверяет, проверен ли пользователь. Как я и сказал, эта часть могла быть чем-то, что я сделал неправильно Как указано, это не будет прослушивать изменения, вы должны проверять себя либо периодически, либо в тот момент, когда вы знаете, что электронная почта подтверждена.
Future(() async {
_timer = Timer.periodic(Duration(seconds: 10), (timer) async {
await FirebaseAuth.instance.currentUser()
..reload();
var user = await FirebaseAuth.instance.currentUser();
if (user.isEmailVerified) {
timer.cancel();
Navigator.of(context).popAndPushNamed(HearingsScreen.routeName);
}
});
});
Поэтому он проверяет каждые 10 секунд, чтобы убедиться, что пользователь не подтвердил свою электронную почту. самое элегантное решение. На странице, на которой у меня есть эта страница, просто отображается сообщение «Пожалуйста, подтвердите вашу электронную почту», поэтому не похоже, что это прерывает другой код. Если ваше приложение выполняет другие задачи, это может не подойти вам. Если вы хотите поиграть с isEmailVerified
go впереди, но я потратил целую неделю головных болей, пока не остановился на этом.