是否有一种方法可以在单个查询中查询包含特定子集合(或根本没有任何子集合)的所有文档?
此答案:Is possible to check if a collection or sub collection exists?建议使用文档长度。可以在单个查询中执行此检查吗?
理想的情况是这样的:
db.collection("stuff")
.whereEqualTo("fu", true)
.containing("subcollection");
上下文:我正在使用FirestoreRecyclerAdapter用此查询填充RecyclerView。这就是为什么我不能在本地进行过滤。我知道在文档中引入一个指标字段可以解决此问题,但理想情况下希望避免这种情况。
答案 0 :(得分:0)
我认为这样的查询是不可能的。
我能想到的最好的方法是在父文档中保留一个字段,该字段会在您向子集合中添加内容时进行标记。
db.collection("stuff")
.whereEqualTo("fu", true)
.whereEqualTo("somethingAddedToSubcollection", true);
绝对不理想,因为每次对子集合的写入现在都需要对文档本身进行第二次写入,所以我希望其他人知道更好的解决方案。