在子集合Firestore中查询文档

时间:2019-10-20 08:39:04

标签: android firebase google-cloud-firestore

我的数据库结构如下:

enter image description here

在“位置”集合中有一个文档,在其中有纬度,经度坐标:

enter image description here

我的最终目标是获取所有用户的所有纬度,经度坐标,但是如果我不知道文档名称在哪里,我已经停留在如何获取位置集合上?

是否可以执行一些查询以直接向内移动到WhereEqualTo("Lat")之类的东西?

首先,我尝试了以下操作:

    db.collection("Users").get()
            .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
                @Override
                public void onComplete(@NonNull Task<QuerySnapshot> task) {
                    if (task.isSuccessful()) {

                        List<String> listID = new ArrayList<>();
                        for (QueryDocumentSnapshot doc : task.getResult()) {

                            listID.add( doc.getId() );
                        }

但是它会返回空列表。

谢谢

1 个答案:

答案 0 :(得分:1)

您需要使用Collection Group Query,如下所示:

db.collectionGroup("Location").get()
        .addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
            @Override
            public void onSuccess(QuerySnapshot queryDocumentSnapshots) {
                // ...
            }
        });

这将查询数据库中所有集合名称Location的查询。