当用户注册时,他们被迫验证他们的电子邮件。这可行,但我希望用户在成功验证电子邮件后自动进入下一页。我使用 userChanges() 函数实现了 StreamBuilder。
@override
Widget build(BuildContext context){
return StreamBuilder<User?>(
stream: FirebaseAuth.instance.userChanges(),
builder: (BuildContext context, AsyncSnapshot<User?> snapshot){
if(snapshot.data == null){
return const SignupPage();
}else
if(snapshot.data!.emailVerified){
return const HomePage();
}
return const WaitingText();
},
);
}
现在,当用户验证他们的邮件时,页面不会更新,但是当我使用 currenUser.reload() 强制重新加载时,它会起作用。
StreamBuilder 是正确的选择吗?我不想不断地重新加载我的用户,直到他们验证为止。
这听起来像是预期的行为:userChanges()
当用户的任何属性发生更改时,流会触发事件,但服务器端更改不会立即传播到客户端。
这意味着只有当您重新验证用户身份(即注销并再次登录)或强制 SDK 重新加载用户配置文件时,才会在客户端中进行验证。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)