Flutter `未来<;流>;`不是“Stream”类型的子类型`

Flutter `未来<;流>;`不是“Stream”类型的子类型`,flutter,dart,Flutter,Dart,我制作了一个简单的singleton类,用于FlatterStreamBuilder小部件,例如: StreamBuilder<User>( stream: MydbModel.create().then((dao) => dao.getUserStream()) as Stream<User>, builder: (_, snapshot) { ... }, ) 我如何解决这个问题 我完成的课程: > type 'Future<S

我制作了一个简单的singleton类,用于Flatter
StreamBuilder
小部件,例如:

StreamBuilder<User>(
  stream: MydbModel.create().then((dao) => dao.getUserStream()) as Stream<User>,
  builder: (_, snapshot) {
    ...
  },
)
我如何解决这个问题

我完成的课程:

> type 'Future<Stream<User>>' is not a subtype of type 'Stream<User>' in type cast
class MydbModel{
  UserDao _userDao;

  MydbModel._(this._userDao);
  static Future<MydbModel> create() async => MydbModel._(await initialDatabase());

  static Future<UserDao> initialDatabase() async {
    var db = await $FloorAppDatabase.databaseBuilder('flutter_database.db').build();
    return db.userDao;
  }

  Stream<User> getUserStream(){
    return userDao.getUserInfo();
  }

  UserDao get userDao=>_userDao;
}
classmydbmodel{
用户道(UserDao);;
MydbModel.uu(this.userDao);
静态Future create()async=>MydbModel.(wait initialDatabase());
静态未来initialDatabase()异步{
var db=await$FloorAppDatabase.databaseBuilder('flatter_database.db').build();
返回db.userDao;
}
流getUserStream(){
返回userDao.getUserInfo();
}
UserDao获取UserDao=>\u UserDao;
}

您需要先等待
未来

FutureBuilder(
  future: MydbModel.create(),
  builder: (BuildContext context, AsyncSnapshot<MydbModel> snapshot) {
    if (!snapshot.hasData) return Container();
    return StreamBuilder(
      stream: snapshot.data.getUserStream(),
      builder: ..,
    );
  },
);
FutureBuilder(
future:MydbModel.create(),
生成器:(BuildContext上下文,异步快照){
如果(!snapshot.hasData)返回容器();
返回流生成器(
流:snapshot.data.getUserStream(),
建筑商:。。,
);
},
);
我使用了一个
FutureBuilder
来等待
Future
并在加载Future时创建一个
StreamBuilder