如何使用 FirebaseAuth 在 IOS 上保持登录状态

时间:2021-07-01 23:55:20

标签: flutter dart

我正在使用带有 firebaseAuth 的电话号码登录方法,它在 Android 上运行良好,但每次在 IOS 上构建和运行代码时都会保持注销。

FirebaseAuth.instance.authStateChanges().listen((User user) {
    if (user == null) {
      Navigator.of(context).pushReplacement( new MaterialPageRoute(builder: (context) => SignUp()));
    } else {
      Navigator.of(context).pushReplacement( new MaterialPageRoute(builder: (context) => Home()));
    }

用户在 IOS 上始终为空,是否需要进行任何特定设置才能在 IOS 上保持登录状态?

1 个答案:

答案 0 :(得分:0)

根据 Firestore Flutter 文档,您无需执行任何操作即可跨负载设置持久性,它已为您完成。
https://firebase.flutter.dev/docs/auth/usage/#persisting-authentication-state

它有助于在初始化 Firebase 实例后立即创建侦听器

Firebase.initializeApp().then((value) {
  // Start listening to auth changes
  FirebaseAuth.instance.authStateChanges().listen((User user) {
    // If user ever becomes null then log out
    if (user == null) {
      // Handle logout
    }
  });

另一个提示是,在您初始化 Firebase 应用程序后,您可以随时通过检查来检查用户当前是否已登录

FirebaseAuth.instance.currentUser;

因此,您可以尝试不使用 authStateChanges 侦听器(它实际上仅用于处理更改),而只需在导航到下一个屏幕之前检查用户当前是否已登录。在等待初始化 firebase 的未来完成时,可以使用启动页面。