Flutter Provider:Firebase Auth StateChanges 被监听但状态没有改变
Posted
技术标签:
【中文标题】Flutter Provider:Firebase Auth StateChanges 被监听但状态没有改变【英文标题】:Flutter Provider: Firebase Auth StateChanges is listened but state is not changing 【发布时间】:2021-06-11 16:34:39 【问题描述】:我目前在我的 Flutter 项目中使用 Firebase 身份验证服务。本项目使用 Provider 作为其状态管理。设置登录和注册服务后,它们都运行良好。但正如您所看到的,wrapper.dart
文件似乎通过来自main.dart
的提供程序(作为父级)侦听AuthStateChanges()
方法。即使很难听,如果状态发生变化,包装器内的 if else 语句也不会重建。结果,如果登录或注册方法成功,主页不会自动推送。但是,当我热重启应用程序时,它确实有效。
我的目标是,只要登录过程成功,包装器 if else 语句就会被监听并明显重建,以便可以实时推送例如 HomePage()
。
这是我在 Github 上的项目存储库链接:https://github.com/fullstack-dre/packme
有人可以帮我吗?也许关于我应该如何实施提供者?非常感谢。
【问题讨论】:
"寻求调试帮助的问题('为什么这段代码不工作?')必须包括期望的行为、特定问题或错误和必要的最短代码 在问题本身。没有明确的问题陈述的问题对其他读者没有用处。请参阅:@ 987654322@" 【参考方案1】:你需要先导入 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!');
);
【讨论】:
以上是关于Flutter Provider:Firebase Auth StateChanges 被监听但状态没有改变的主要内容,如果未能解决你的问题,请参考以下文章
使用Provider for DI时如何根据Firebase Auth流修改Flutter Firebase Stream监听器?
Flutter:如何设置 Stream 和 Provider
使用提供程序在 Flutter 中进行 Firebase 电话身份验证 [关闭]