如何在Flutter项目中合并两个Firestore查询,以及如何从这两个流中删除重复的文档?

问题描述 投票:0回答:1

我需要在flutter项目中合并两个firestore查询流。我该怎么做呢?我尝试了StreamZip([Stream1,stream2])方法来合并流,它对我有用。但是流中可能包含相同的文档。因此,当我列出它们时,所有文档都被列出,即使有重复也是如此。如何从这两个流中删除重复的文档?

   Stream<List<QuerySnapshot>> getData() {
    Stream defaultStream1 = _firestore
        .collection("Gyms")
        .where("gymPlaceTags", arrayContainsAny: ["dubai"])
        .orderBy('createdAt', descending: true)
        .snapshots();
    Stream defaultStream2 = _firestore
        .collection("Gyms")
        .where("gymFavTags", arrayContainsAny: ["ajman"])
        .orderBy('createdAt', descending: true)
        .snapshots();
    return StreamZip([defaultStream1, defaultStream2]);
  }
flutter dart google-cloud-firestore stream snapshot
1个回答
0
投票

您应该能够在arrayContainsAny中添加多个值。

© www.soinside.com 2019 - 2024. All rights reserved.