android - Firestore - 获取子集合的父文档

标签 android firebase google-cloud-firestore

Screenshot of my database as requested我正在开发一个使用具有以下层次结构的 firestore 数据库的应用程序: 父集合: 父文档: 子集: 子文件{ 字符串名称} 使用 collectionGroup 我已经能够查询具有特定名称的文档的子集合,但我不知道如何获取 parent_document

 db.collectionGroup("subcollection").whereEqualTo("name", searchText).get()
                .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
                    @Override
                    public void onComplete(@NonNull Task<QuerySnapshot> task) {
                        if(task.isSuccessful()){
                          //here I want to get the parent id of all results
                        }
                    }
                });

实现该目标的最佳方法是什么?

最佳答案

QuerySnapshot 指向多个QueryDocumentSnapshot 实例。

QueryDocumentSnapshot 中,您可以通过以下方式获取它的集合:

snapshot.getRef().getParent()

然后父 DocumentReference 是:

snapshot.getRef().getParent().getParent()

所以要获取父文档的子集合:

snapshot.getRef().getParent().getParent().collection("name_of_subcollection")

是的,我同意...这本来可以更具可读性。 :)

关于android - Firestore - 获取子集合的父文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56219469/

相关文章:

javascript - 刷新后,我的 webview 没有设置正确的屏幕方向

android - 使用集成测试时,Gradle 无法从 AndroidManifest.xml 中正确获取元数据

android - RecyclerView - 删除行总是删除最后一行

android - 如何在 Viewflipper 中设置 onclick 监听器

javascript - 如何在 React 中分离多个进度百分比

swift - 无法重新授权用户更改电子邮件或重置密码(Firebase .. Swift)

ios - 如何在 Firebase 中使用 "StorageReference.downloadURLWithCompletion()"?

android - 为什么此错误 : java. lang.IllegalStateException:在调用 commit() 后无法再使用写入批处理

android - Flutter android构建失败

firebase - 使用 Firebase Export Collections to BigQuery 扩展将 Firestore 数据以表格格式存储在 BigQuery 中