Firestore查询返回空的JSON对象

时间:2019-12-18 06:41:25

标签: android firebase google-cloud-firestore

我们正在开发使用Firebase作为后端的移动应用程序。我们正在使用Cloud Firestore作为我们的数据库。从Android查询数据时,它返回空白JSON。这是我们数据库的外观

enter image description here

这是我们的android代码

        db.collection("meta_data")
        .get()
        .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
            @Override
            public void onComplete(@NonNull Task<QuerySnapshot> task) {
                if (task.isSuccessful()) {
                    for (QueryDocumentSnapshot document : task.getResult()) {
                        Log.d(TAG, document.getId() + " => " + document.getData());
                    }
                } else {
                    Log.d(TAG, "Error getting documents: ", task.getException());
                }
            }
        });

它打印

  

college_metadata => {}

1 个答案:

答案 0 :(得分:1)

您的“ college_metadata”文档实际上不包含任何字段。这就是我所说的“空文档”。如果从空文档中打印数据,则会得到一个空地图,这就是您在输出中看到的内容:{}

Firestore中的查询是“浅”的,这意味着它们不会获取匹配文档的嵌套子集合。如果要将数据放在嵌套子集合中,则必须按名称查询:

db
    .collection("meta_data")
    .document("college_metadata")
    .collection("course")
    .get()

这将为您提供空文档“ college_metadata”的“ course”子集中的所有文档。

无法使Firestore查询获取所有嵌套集合中的所有嵌套文档。如果需要的话,您需要编写该代码。