我正在尝试获取集合groups
中的所有文档ID。文档ID是唯一的组名。此外,groups
中的每个文档没有字段,只有指向其他集合的指针。我编写了以下代码:
fireDB.collection("groups").get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
QuerySnapshot querySnapshots = task.getResult();
if (querySnapshots != null) {
for (QueryDocumentSnapshot currentDocumentSnapshot : querySnapshots) {
groups.add(currentDocumentSnapshot.getId());
}
Collections.sort(groups);
ArrayAdapter<String> adapter = new ArrayAdapter<>(SignUpActivity.this,android.R.layout.simple_list_item_1,groups);
groupNameText.setAdapter(adapter);
} else {
Log.d(this.getClass().getName(), "No groups in the database");
}
} else {
Log.d(this.getClass().getName(), "addOnCompleteListener:failed");
}
}
});
但是groups
始终为空,因为firebase不会给我没有字段的文档(经过一些调试后将其显示出来)。我该怎么办?
答案 0 :(得分:2)
听起来您在文档路径下有一些子集合,而在该路径下没有文档。这是一种有效的情况,但是我认为不可能在客户端SDK中获得这些位置,因为那里没有文档。
请参见https://www.reddit.com/r/Firebase/comments/b0poug/empty_virtual_docs_this_document_does_not_exist/
Firebase控制台以斜体显示这些位置,因为它需要显示每个位置下的子集合。它可能为此使用了REST API或Admin SDK中的show_missing
标志。