在进入应用程序之前,使用 Firebase 检查用户是否已登录。

3
我需要在不延迟应用程序打开的情况下检查用户是否是新用户或已登录,并根据用户的登录状态显示屏幕。

我认为仅使用Firebase无法实现这一点。也许一种方法是将用户外部保存到Firebase中,例如在缓存中,然后假设后端一切正常。之后,如果需要确保用户仍然相同、活跃且一切正确,可以进行第二次检查/更新以再次获取用户。除此之外,上面指出的重复似乎运行良好。如果您真的需要没有延迟的话,也许可以更新您的问题和标题以澄清。 - George
1个回答

1

从Firebase Auth中检查用户身份验证状态始终会存在延迟。例如,使用 FirebaseAuth.instance.authStateChanges().listen() 监听身份验证状态更改。

FirebaseAuth.instance
  .authStateChanges()
  .listen((User? user) {
    if (user == null) {
      print('User is currently signed out!');
    } else {
      print('User is signed in!');
    }
  });

作为解决方法,我在我的端上使用了shared_preferences存储认证状态。使用这个方法,如果已经存储了认证会话,应用可以立即将用户重定向到主页。FirebaseAuth的authStateChanges监听器稍后只需更新SharedPreferences,以便在用户认证状态发生任何更改时进行更新。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接