Flutter,内部流构建器,如何根据未来获取流?

Posted

技术标签:

【中文标题】Flutter,内部流构建器,如何根据未来获取流?【英文标题】:Flutter, Inside streambuilder, how to get stream based on a future? 【发布时间】: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());


【问题讨论】:

【参考方案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());
      ,
    );
  

【讨论】:

以上是关于Flutter,内部流构建器,如何根据未来获取流?的主要内容,如果未能解决你的问题,请参考以下文章

Flutter 流构建器概念

FLUTTER:如何在流构建器中使用导航器?

Flutter - 如何在流构建器中使用 await?

FLUTTER,FIRESTORE:我有一个流构建器,它从集合中的所有文档中返回某个字段..如何添加查询?

Flutter:为啥这个流构建器不起作用?

Flutter:Streambuilder - 关闭流