集合
我已成功按以下方式推送数据:
private void onAddItemsClicked() {
// Get a reference to the restaurants collection
CollectionReference quotes = mFirestore.collection("quotes");
for (int i = 0; i < 10; i++) {
// Get a random Restaurant POJO
TaskItem item = new TaskItem();
item.setId(UUID.randomUUID().toString());
item.setTitle("good life is key to success " + i);
item.setCategory("Life " + i);
// Add a new document to the restaurants collection
quotes.add(item);
}
}
我想在我的自定义列表对象中检索它,让我们说List<TaskItem> mList;
包含所有Firestore数据。
我尝试了以下方式,但没有显示此类文件。
mQuery = mFirestore.collection("quotes");
mQuery.document().get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
@Override
public void onComplete(@NonNull Task<DocumentSnapshot> task) {
if (task.isSuccessful()) {
DocumentSnapshot document = task.getResult();
if (document != null && document.exists()) {
Log.d("TAG", "DocumentSnapshot data: " + document.getData());
} else {
Log.d("TAG", "No such document");
}
} else {
Log.d("TAG", "get failed with ", task.getException());
}
}
});
我在这里缺少什么?任何参考或帮助
答案 0 :(得分:2)
要解决此问题,请使用以下代码:
mQuery.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
List<TaskItem> list = new ArrayList<>();
for (DocumentSnapshot document : task.getResult()) {
TaskItem taskItem = document.toObject(TaskItem.class);
list.add(taskItem);
}
Log.d(TAG, list.toString());
}
}
});
list
现在包含您的所有TaskItem
个对象。