Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 查询包含子集合的文档_Android_Firebase_Google Cloud Firestore_Firebaseui - Fatal编程技术网

Android 查询包含子集合的文档

Android 查询包含子集合的文档,android,firebase,google-cloud-firestore,firebaseui,Android,Firebase,Google Cloud Firestore,Firebaseui,是否有一种方法可以在单个查询中查询包含特定子集合(或任何子集合)的所有文档 这个答案:建议使用文档长度。是否可以在单个查询中执行此检查 理想情况下,这样的事情是可能的: db.collection("stuff") .whereEqualTo("fu", true) .containing("subcollection"); 上下文:我正在使用FirestoreRecyclerAdapter用此查询填充RecyclerView。这就是为什么我不能

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

这个答案:建议使用文档长度。是否可以在单个查询中执行此检查

理想情况下,这样的事情是可能的:

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

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

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

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

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

诚然,这并不理想,因为每次写入子集合都需要再次写入文档本身,所以我希望其他人知道更好的解决方案。

Firestore不支持跨集合的查询。单个查询只能使用单个集合中文档的属性。子集合是它们自己的集合-它们实际上与更高级别的集合没有任何关系,除非按组织划分。