Flutter,Inside streambuilder,如何根据未来获取流?

问题描述

我想要一列来自我的 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());
      },);
  

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...