Я знаю, что этот вопрос задавали много, и я потратил много времени, читая и пытаясь реализовать ответы. Поэтому я пытаюсь получить ответ от isEmailVerified
от Firebase Auth, и он работает, но сейчас он всегда возвращает false, если я не обновлю sh приложение или не закрою его и не открою снова. что явно плохо для пользователя. Как получить ответ на обновление без необходимости закрывать приложение.
Вот соответствующие фрагменты кода.
Future<bool> isEmailVerified() async {
FirebaseUser user = await _auth.currentUser();
if (user == null) {
return false;
} else {
await user.reload();
user = await _auth.currentUser();
return user.isEmailVerified;
}
}
main.dart
child: Consumer<Auth>(
builder: (_, auth, __) => MaterialApp(
theme: Provider.of<ThemeNotifier>(context).getTheme(),
home: FutureBuilder(
future: Future.wait([auth.isEmailVerified(), auth.tryAutoLogin()]),
builder: (BuildContext ctx, AsyncSnapshot authResultSnapshot) =>
authResultSnapshot.connectionState == ConnectionState.done
? authResultSnapshot.data[1]
? authResultSnapshot.data[0]
? HearingsScreen()
: SplashScreen(
emailVerified: true,
)
: LoginScreen()
: SplashScreen(),
),
Это не возвращает истину, пока я не перезапущу приложение
Что я пробовал, кроме этого:
1) await user.getIdToken(refresh: true);
2) зарегистрировать пользователя, затем вернуться в
3) пакет firebase_user_stream
Любая помощь приветствуется.