繁体   English   中英

Flutter 错误:添加空安全后,StreamProvider 需要 initialData 参数。 流提供者<usermodel>来自 firebase</usermodel>

[英]Flutter Error: StreamProvider requires initialData parameter after null-safety added. StreamProvider<UserModel> from firebase

自 Flutter 空安全更新以来,我的旧代码被破坏了。 我设法修复了大部分问题,但这一点仍未解决。

首先是代码:

class _MyAppState extends State<MyApp> {
  @override
  Widget build(BuildContext context) {
    return StreamProvider<MyUser>.value( //initialData required here now
      value: AuthService().user,
      child: MaterialApp(
        home: Wrapper(),
      ),
    );
  }
}

这段代码曾经有效,但现在它需要将 initialData 作为参数传递给 StreamProvider。 我的“我的用户”class 如下:

// Create custom User Model to get only the uid
class MyUser {
  final String uid;

  MyUser({required this.uid});
}

我的问题只是我不确定在这种情况下我的 initialData 应该是什么。 我的 AuthService class 基本上是一个 class,具有“使用 email 和密码登录”、“使用 email 和密码注册”等功能,全部来自 Firebase。像这样:

// Create user object based on FirebaseUser
  MyUser _userFromFirebaseUser(User? user) {
    return MyUser(uid: user!.uid);
  }

  // Auth change user stream
  Stream<MyUser> get user {
    return _firebaseAuth.authStateChanges().map(_userFromFirebaseUser);
  }

十分感谢你的帮助!

通过添加使其可为空? 在 MyUser 之后,然后您可以将 initialData 设置为 null

class _MyAppState extends State<MyApp> {
  @override
  Widget build(BuildContext context) {
    return StreamProvider<MyUser?>.value( 
      initialData: null
      value: AuthService().user,
      child: MaterialApp(
        home: Wrapper(),
      ),
    );
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM