Я отправляю ссылку для подтверждения, когда пользователь регистрируется в приложении, но когда я пытаюсь создать поток, который прослушивает, когда пользователь щелкнул ссылку для подтверждения в электронном письме.
Я Я знаю, что мне как-то нужно обновить sh токен пользователя, но я не могу заставить его работать. Я думал, что reload()
метод был единственным, но, может быть, я просто неправильно его реализую.
Проблема в том, что Stream всегда возвращает isEmailVerified == false, единственный способ сделать его истинным для пользователя выйти и снова войти в систему, чего я хотел бы избежать. Как мне это сделать?
Я создал это будущее:
//CHECKS IF EMAIL IS VERIFIED
Future<bool> checkIfEmailIsVerified() async {
FirebaseUser currUser = await _auth.currentUser();
await currUser.reload();
currUser = await _auth.currentUser();
final bool flag = currUser.isEmailVerified;
if (currUser != null) {
return flag;
} else {
return false;
}
}
и этот поток:
//IS EMAILVERIFIED STREAM
Stream<EmailVerified> get emailVerified async* {
final bool isEmailVerified = await checkIfEmailIsVerified();
yield EmailVerified(isEmailVerified);
}