带有Firebase的Flutter Web应用程序未缓存凭据



我有一个基于flutter的web应用程序,它使用Firebase进行电话身份验证。我可以使用firebase进行身份验证。刷新或重新加载应用程序时会出现问题。它从头开始要求我输入手机号码,然后输入OTP。。。

在网上搜索后,我发现一些人建议放置以下代码(_auth.setPersistence(Persistence.LOCAL(;(。不幸的是,这不起作用!!

@override
void initState() {
super.initState();
_auth = FirebaseAuth.instance;
_auth.setPersistence(Persistence.LOCAL);
isLoading = false;
}
@override
Widget build(BuildContext context) {
user = _auth.currentUser;
return isLoading
? const Scaffold(
body: Center(
child: CircularProgressIndicator(),
),
)
: user == null
? const Login()
: const Home();
} 

有没有办法避免用户每次访问应用程序时都会询问电话号码和OTP?

Firebase会自动在大多数浏览器环境中本地存储凭据。但是恢复它们需要调用服务器,这是一个异步操作,在首次调用build方法时可能尚未完成。

要正确地获取用户状态并对其作出响应,请使用auth-state侦听器,如获取当前用户的文档中的第一个代码示例所示。该代码示例中的FirebaseAuth.instance.authStateChanges()是一个流,因此您希望在UI中使用StreamBuilder来处理身份验证状态。

相关内容

  • 没有找到相关文章

最新更新