我们正在开发使用Firebase作为后端的移动应用程序。我们正在使用Cloud Firestore作为我们的数据库。从Android查询数据时,它返回空白JSON。这是我们数据库的外观
这是我们的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 => {}
答案 0 :(得分:1)
您的“ college_metadata”文档实际上不包含任何字段。这就是我所说的“空文档”。如果从空文档中打印数据,则会得到一个空地图,这就是您在输出中看到的内容:{}
。
Firestore中的查询是“浅”的,这意味着它们不会获取匹配文档的嵌套子集合。如果要将数据放在嵌套子集合中,则必须按名称查询:
db
.collection("meta_data")
.document("college_metadata")
.collection("course")
.get()
这将为您提供空文档“ college_metadata”的“ course”子集中的所有文档。
无法使Firestore查询获取所有嵌套集合中的所有嵌套文档。如果需要的话,您需要编写该代码。