firebase - Flutter,内部流构建器,如何根据未来获取流?
问题描述
我想要基于高于某个值的标签从我的 firebase 集合中发布一列帖子。由于我的值嵌套在单独的集合和文档中,因此我需要等待未来才能返回我的流。
帖子[集合]->帖子[文档]->标签[集合]->标签[文档]->值[字段]
代码根本不起作用,但我想做的是这样的:
StreamBuilder(
stream:
FirebaseFirestore.instance.collection("posts").snapshots().where((post) {
return FirebaseFirestore.instance.collection("posts")
.doc(post.id).collection("tags").doc("favorites")["value"] > 5;
}
),
builder: (context, AsyncSnapshot<QuerySnapshot> snapshot) {
return Column(children: snapshot.map((e) => PostCard(post: e)).toList());
}
解决方案
我建议你创建一个新的collection "tags"
并流式传输该集合..
return StreamBuilder<QuerySnapshot<Map<String, dynamic>>>(
stream: FirebaseFirestore.instance.collection("tags").where('favorites', isGreaterThan: 5).snapshots(),
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) return Center(child: CircularProgressIndicator());
return Column(children: snapshot.data.docs.map((e) => PostCard(post: e)).toList());
},
);
推荐阅读
- sql - 将数据从 SQL Server 复制到 Excel 时换行
- linux - 如何在 AWK 中处理不同的行尾,例如以 CRLF (\r\n) 结尾的行和以 LF (\n) 或 CR (\r) 结尾的行
- php - 如何通过服务帐户使用 Google Drive PHP Api
- reporting-services - SSRS 按年份组总计排序
- javascript - JS 如何从函数内部的方法中获取值?
- docker - 没有从带有过滤器的 docker api list 任务中获取结果
- c++ - 为什么宇宙飞船操作员不允许我执行相等操作但允许不等式操作?
- javascript - 在vscode中运行代码时如何让js代码显示在chrome开发者控制台下
- php - 通过 eloquent 用一个对象更新 mongodb 集合
- python - onehot编码后如何使用预测模型?