如何通过在Flutter中处理数据来过滤Firebase子集合

时间:2020-08-04 15:40:58

标签: firebase flutter google-cloud-firestore

我有一个名为“帖子”的收藏集。帖子包含名为“反馈”的子集合。

当用户向帖子提供反馈时,其ID和评论将添加到反馈子集合中。

现在,我想查找用户未提供反馈的帖子。

在先前的post中,我被告知无法通过Firebase完成此操作。因此,我尝试从客户端进行此操作。

List<String> postIds = [];

await Firestore.instance
    .collection(APIPath.posts())
    .getDocuments()
    .then((postDocs) async {
  postDocs.documents.forEach((doc) async {

    print(doc.documentID);

    var feedbackDocs = await Firestore.instance
        .collection('posts')
        .document(doc.documentID)
        .collection('feedback')
        .getDocuments();

    var givenFeedback = false;
    feedbackDocs.documents.forEach((feedbackDoc) async {
      
    });


    print(givenFeedback);

    if (!givenFeedback) {
      postIds.add(doc.documentID);
    }
  });
});

print(postIds);

我的想法是浏览所有帖子,并找到每个帖子的反馈。如果当前用户“ uid”给出了任何帖子,则丢弃该帖子。

但是由于某种原因,我没有将任何数据输入到阵列中。即使我没有对任何帖子提供任何反馈。


我添加了2条打印语句。

第一条语句打印13个文档ID。

现在这些邮政文件中都没有任何反馈。 所以我应该得到13个错误的输出。 但是我只会得到2个错误的输出。

我希望得到的是发布文档ID,然后输出错误 像这样;

91ew6yx3yWaWGme31FTB
fasle
Aqq5HctlLudFFvqN8prm
false
...

我得到的是; 我先得到13个文件ID 然后是2个错误的输出 像这样

91ew6yx3yWaWGme31FTB
Aqq5HctlLudFFvqN8prm
...
v39SkTkL8PwMOyPAE2QG

false
false

似乎部分代码没有运行... 有没有正确的方式来安排此代码?

0 个答案:

没有答案