flutter - 使用Flutter和Provider实现Firebase Auth

标签 flutter dart flutter-provider

我对使用Firebase Auth实现提供程序感到有些困惑。每个教程似乎都使用不同的方法。我有一个名为AuthService的服务,其中包含一个变量final FirebaseAuth auth = FirebaseAuth.instance。因此,我想使用以下stream:widged中的AuthService.auth.onAuthStateChanged。问题是我应该使用类似以下内容的方法:

StreamProvider<FirebaseUser>.value(
  value: AuthService().auth.onAuthStateChanged,
  child: ...
或创建像这样的构造函数:
Provider<AuthService>(
  create: (_) => AuthService(),
  child: ...
)
并在小部件中的某处访问它:
final authService = Provider.of<AuthService>(context);<br>
final user = authService.auth.onAuthStateChanged;

最佳答案

您可以使用与此类似的东西,如果用户登录,他将导致MainScreen(),否则将导致您进入LoginPage(),则无需使用provider

Widget _handleAuth() {
    return StreamBuilder<FirebaseUser>(
      stream: FirebaseAuth.instance.onAuthStateChanged,
      builder: (BuildContext context, snapshot) {
        return (!snapshot.hasData)
            ? LoginPage()
            : MainScreen();
      },
    );

关于flutter - 使用Flutter和Provider实现Firebase Auth,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62775091/

相关文章:

flutter - 如何解决此错误 "setState() or markNeedsBuild() called during build."?

flutter - 如何在flutter 2中进行多个文件的集成测试?

dart - 如何在 Flutter 的屏幕上获取小部件的绝对坐标?

mobile - NoSuchMethodError(NoSuchMethodError:类 '_InternalLinkedHashMap<String, dynamic>'没有具有匹配参数的实例方法 'cast'

firebase - 如何在 Flutter 中从 Firebase 获取当前用户 ID

flutter - 有 ChangeNotifierList 吗?

flutter - 键盘覆盖可搜索的下拉小部件

flutter - Flutter _如何解决此键盘的显示错误

android - Flutter Swiper,带有小部件列表

Flutter:如何使用 Provider 播放动画?