扑动 Firebase authStateChanges 没有被触发

Posted

技术标签:

【中文标题】扑动 Firebase authStateChanges 没有被触发【英文标题】:fluttrer Firebase authStateChanges doesn't get triggered 【发布时间】:2021-07-22 22:30:06 【问题描述】:

我的 MacBook Pro M1 更新到 Big Sur 11.3ios 模拟器更新到 14.5

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

    我以 UserA 身份登录,authStateChanges 没有触发 我以 UserB 身份登录,authStateChanges 被触发 - 一切正常 我重新启动应用程序 (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 模拟器上看到了同样的行为。 我的 Firebase 身份验证设置是否有可能发生了变化? 这是什么原因造成的?

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

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

【问题讨论】:

我遇到了同样的问题,这是 1.1.2 版本的问题。 github.com/FirebaseExtended/flutterfire/issues/5952 现在仍然对我有用...更改为 1.0.4(核心)和 1.1.1(身份验证)版本,进行了所有清理,并从模拟器中删除了所有内容。仍然遇到同样的问题 【参考方案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

【讨论】:

现在仍然对我有用...更改为 1.0.4(核心)和 1.1.1(身份验证)版本,进行了所有清理,并从模拟器中删除了所有内容。仍然遇到同样的问题 您能否在您的 Pubspec.lock 中检查您的版本是否与您的 pubspec.yaml 中的版本相同?您能否在 Podfile.lock 中检查您的版本是:Firebase/Auth (7.3.0)? 天哪!就是这样!我使用的是胡萝卜符号: firebase_core: ^1.0.0 firebase_auth: ^1.0.0 我现在明白它采用了最新版本(在 pubspec.lock 中可见) 将其更新为: firebase_core: 1.0.4 firebase_auth: 1.1.1 并且有用!非常感谢!我在哪里可以进一步阅读 thepub spec.yaml 语法规则?

以上是关于扑动 Firebase authStateChanges 没有被触发的主要内容,如果未能解决你的问题,请参考以下文章

扑动 Firebase 动画列表视图如何将数据传递到详细信息屏幕

扑动中未定义的类'UserCredential'

通过 webview 扑动贝宝

扑动 ontap 错误 ontap 停止工作

英语天天学 磨耳朵Flutter Butterflies扑动的蝴蝶

扑动点指示器到浏览量