【问题标题】:Flutter, Inside streambuilder, how to get stream based on a future?Flutter,内部流构建器,如何根据未来获取流?
【发布时间】:2021-10-07 04:34:12
【问题描述】:

我想要我的 firebase 集合中的一列帖子,这些帖子基于高于某个值的标签。由于我的值嵌套在单独的集合和文档中,因此我需要等待未来才能返回我的流。


Posts[collection] -> post[document] -> tags[collection]->tag[document] -> value[field]


代码根本不起作用,但我想做的是这样的:

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());

}

【问题讨论】:

    标签: firebase flutter dart google-cloud-firestore


    【解决方案1】:

    我建议你创建一个新的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());
          },
        );
      
    

    【讨论】:

      猜你喜欢
      • 2019-12-18
      • 1970-01-01
      • 2021-12-08
      • 2019-05-09
      • 2020-08-12
      • 2021-05-08
      • 2020-05-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多