使用此功能,我可以从 firestore 加载所有新闻。我使用 test-List 进行查询。
Stream<List<News>> getAllNews(List<String> test) {
return _db
.collection('news')
.where('userRoleList', arrayContainsAny: test)
.orderBy('createdAt', descending: true)
.snapshots() // oder .get um ein Future zu bekommen
.map((query) => query.docs)
.map((snapshot) =>
snapshot.map((doc) => News.fromJson(doc.data())).toList());
}
使用此函数,我将 List 传递给前一个函数。但问题是,Stream 会在 Future 完成之前返回。
Stream<List<News>> getAllTheNews() {
getUser(_auth.currentUser.uid)
.then((value) => userRoles = value.userRoleList);
return _firestoreNewsService.getAllNews(userRoles);
}
是否有任何解决方案,例如在延迟后返回 Stream 或其他什么?
谢谢
答案 0 :(得分:1)
您可以使用异步和等待。
Stream<List<News>> getAllTheNews() async {
final user = await getUser(_auth.currentUser.uid);
final userRoles = user.userRoleList;
return _firestoreNewsService.getAllNews(userRoles);
}