flutterer Firebase authStateChanges 不会被触发

时间:2021-04-29 14:24:55

标签: firebase flutter firebase-authentication

将我的 MacBook Pro M1 更新到 Big Sur 11.3,iOS 模拟器更新到 14.5

现在我的 Flutter 项目使用 Firebase 身份验证并且过去工作得很好,但在模拟器和 iOS 设备(均为 iOS 14.5)上都显示出混乱的身份验证行为:

  1. 我以 UserA 身份登录,authStateChanges 不会触发
  2. 我以 UserB 身份登录,authStateChanges 被触发 - 一切正常
  3. 我重新启动了应用程序 (VSCode),然后我发现自己又回到了登录屏幕,因为 authStateChanges 返回 null(firebaseUser = null,请参阅代码)

已测试 firebase_auth:^1.0.0firebase_auth:^1.1.2

示例代码(以前工作得很好):

FirebaseAuth.instance.authStateChanges().listen((User firebaseUser) {
// if null goto login screen, otherwise goto user screen
});

正在下载 iOS 14.4 模拟器 - 为了在其上测试我的应用...

更新: 所以我在 iOS 14.4 Simulator 上看到了相同的行为。 我的 Firebase 身份验证设置是否有可能发生了变化? 什么会导致这种情况?

更新2: 在我的 iPhone 上以发布模式进行测试,我看到了相同的行为: 杀死我的应用程序后,我发现自己又回到了登录屏幕...... 所以很明显是一个新的编译版本导致了这个,但我不知道它是什么......

更新 3: 刚刚恢复到我的代码的 2 周旧版本,仍然是同样的问题! 所以我开始认为这不是代码问题,而是 Mac 配置问题——也许是 Big Sur 11.3,也许是新的 Flutter 版本 (2.0.5) 很郁闷...

1 个答案:

答案 0 :(得分:1)

实际上,已经有一个未解决的问题:https://github.com/FirebaseExtended/flutterfire/issues/5952

如果我使用旧版本,它对我有用:

firebase_core: 1.0.4
firebase_auth: 1.1.1

那么你必须这样做:

flutter clean 
pod deintegrate
rm Podfile.lock
pod cache clean --all
flutter run