Iva*_*nha 5 java android firebase google-cloud-firestore
我的Firestore数据库结构:
|
|=>root_collection
|
|=>doc1
|
|=>collection
|
|=>doc2
|
|=>collection
|
|=>doc3
|
|=>collection
Run Code Online (Sandbox Code Playgroud)
现在我想从中获取文件清单root_collection。将有一个包含以下数据的列表{"doc1", "doc2", "doc3"}。我需要它是因为我想制作一个微调器并将这些数据放入微调器中。然后,用户将选择一些文档并下载。
我尝试使用下面的代码:
firestore.collection("root_collection")
.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());
}
}
});
Run Code Online (Sandbox Code Playgroud)
但是代码只有在我拥有文档中没有集合的数据结构时才起作用。在其他情况下,中没有任何文档QueryDocumentSnapshot。
谢谢!
要拥有包含内所有文档名称的列表root_collection,请使用以下代码:
firestore.collection("root_collection").get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
List<String> list = new ArrayList<>();
for (QueryDocumentSnapshot document : task.getResult()) {
list.add(document.getId());
}
Log.d(TAG, list.toString());
} else {
Log.d(TAG, "Error getting documents: ", task.getException());
}
}
});
Run Code Online (Sandbox Code Playgroud)
您的logcat中的结果将是:
[doc1, doc2, doc3]
Run Code Online (Sandbox Code Playgroud)
请记住,仅当您在这些文档中具有某些属性时,此代码才有效,否则,您将以空列表结尾ut。
| 归档时间: |
|
| 查看次数: |
9225 次 |
| 最近记录: |