查询包含子集合的文档

时间:2018-06-28 11:00:35

标签: android firebase google-cloud-firestore firebaseui

是否有一种方法可以在单个查询中查询包含特定子集合(或根本没有任何子集合)的所有文档?

此答案:Is possible to check if a collection or sub collection exists?建议使用文档长度。可以在单个查询中执行此检查吗?

理想的情况是这样的:

db.collection("stuff")
            .whereEqualTo("fu", true)
            .containing("subcollection");

上下文:我正在使用FirestoreRecyclerAdapter用此查询填充RecyclerView。这就是为什么我不能在本地进行过滤。我知道在文档中引入一个指标字段可以解决此问题,但理想情况下希望避免这种情况。

1 个答案:

答案 0 :(得分:0)

我认为这样的查询是不可能的。

我能想到的最好的方法是在父文档中保留一个字段,该字段会在您向子集合中添加内容时进行标记。

db.collection("stuff")
  .whereEqualTo("fu", true)
  .whereEqualTo("somethingAddedToSubcollection", true);

绝对不理想,因为每次对子集合的写入现在都需要对文档本身进行第二次写入,所以我希望其他人知道更好的解决方案。

相关问题