我有一个使用Firebase身份验证和邮箱/密码身份验证的Ffltter应用程序.
APP正在使用main.dart
中的StreamProvider
来获得用户.
StreamProvider<UserModel?>.value(
initialData: null,
catchError: (_, op) => null,
value: AuthService().user,
),
稍后我调用这个方法来获取用户信息:
User? getCurrentUser() {
return _auth.currentUser;
}
这是伟大的工作,我可以登录,注销,注册,处理忘记的密码.但邮箱验证存在一个问题.
当用户第一次注册时,正如预期的那样,值为emailVerified
为假.
我使用以下方法发送验证邮件:
await user.sendEmailVerification();
但是,在用户验证邮箱后,这不会反映在用户对象中.即使关闭应用程序并重新启动,emailVerified
的值仍然是false
.
只有在我注销并再次登录后,此选项才会刷新.
由于重启应用程序没有任何帮助,我可以假设出问题的不是我的代码.用户似乎被缓存了,而不是被Ffltter或Firebase刷新.
我想我可能不得不使用reload
方法,但我想要一些关于这方面的指导.
用户更改不可见并需要重新加载是否正常? 我什么时候需要重新装货?每次应用程序启动时? 我是否只对未通过邮箱验证的帐户执行此操作,或者是否有其他我可能错过的更新?