【问题标题】:Flutter Provider: Firebase Auth StateChanges is listened but state is not changingFlutter Provider:Firebase Auth StateChanges 被监听但状态没有改变
【发布时间】: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@"

标签: flutter firebase-authentication provider


【解决方案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!');
    }
  });

【讨论】:

    猜你喜欢
    • 2021-02-17
    • 2021-03-06
    • 2021-11-06
    • 1970-01-01
    • 1970-01-01
    • 2021-01-31
    • 2018-09-01
    • 2017-05-31
    • 2020-06-15
    相关资源
    最近更新 更多