如何解决Flutter Provider:Firebase Auth StateChanges 被监听,但状态没有改变
我目前在我的 Flutter 项目中使用 Firebase 身份验证服务。本项目使用 Provider 作为其状态管理。设置登录和注册服务后,它们都运行良好。但如您所见,wrapper.dart
文件似乎通过来自 AuthStateChanges()
(作为父级)的提供程序监听 main.dart
方法。即使很难听,如果状态发生变化,包装器中的 if else 语句也不会重建。结果,如果登录或注册方法成功,主页不会自动推送。但是,当我热重启应用程序时它确实有效。
我的目标是只要登录过程成功,包装器 if else 语句就会监听并明显重建,以便可以实时推送 HomePage()
实例。
这是我在 Github 上的项目存储库链接:https://github.com/fullstack-dre/packme
有人可以帮我吗?也许我应该如何实施提供者?非常感谢。
解决方法
你需要先导入 firebase_auth.dart
import 'package:firebase_auth/firebase_auth.dart';
然后使用 authStateChanges()
而不是 AuthStateChanges()
您可以使用此代码进行身份验证。
FirebaseAuth.instance
.authStateChanges()
.listen((User user) {
if (user == null) {
print('User is currently signed out!');
} else {
print('User is signed in!');
}
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。