Flutter 如何让用户保持登录状态?

1 sharedpreferences dart firebase firebase-authentication flutter

我有一个颤振应用程序。即使在退出应用程序后,我也想让用户保持登录状态。我有 main.dart 文件、login.dart 和dashboard.dart。如果用户尚未登录,我希望 main.dart 重定向到 login.dart,但如果找到共享首选项值,则直接重定向到仪表板。

Dou*_*son 5

您无需执行任何操作即可让用户使用 Firebase 身份验证登录。SDK 会记住用户并在应用程序重新启动时再次登录。在共享首选项中存储任何内容都无济于事。根据文档

适用于所有平台的 Firebase SDK 提供开箱即用的支持,以确保您的用户的身份验证状态在应用重新启动或页面重新加载时保持不变。

当您应该做的是使用状态侦听器流来找出 SDK 何时验证用户对象在用户登录时可用。请务必阅读相关文档

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