firebase - 在 Future 完成之前返回 Stream
问题描述
使用此功能,我从 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 或其他什么?
谢谢你
解决方案
您可以使用异步和等待。
Stream<List<News>> getAllTheNews() async {
final user = await getUser(_auth.currentUser.uid);
final userRoles = user.userRoleList;
return _firestoreNewsService.getAllNews(userRoles);
}
推荐阅读
- angular - TypeError:无法读取未定义的属性“employeeName”
- java - 如何操纵 Instant 添加两天和基于字符串的时间?
- javascript - 解压缩器忽略空目录
- javascript - 错误:“找不到模块 'react-search-input' 的声明文件”
- java - 从 Spring Boot 应用程序通过 OAuth 2.0 访问内部 REST API
- python-3.x - 输入后如何删除换行符?
- excel - Excel VBA循环并以交互方式显示更改
- css - 当元素内部的输入使用 CSS/SCSS 聚焦时,我可以在元素之后更新父元素的样式吗?
- terraform - 您如何检测 Terraform 脚本是否在计划或应用模式下运行?
- python - 如何从位于另一个python文件的一个python文件中的类中调用方法