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

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,具有“使用电子邮件和密码登录”、“使用电子邮件和密码注册”等功能,全部来自 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(),
      ),
    );
  }
}