firebase - Firestore Flutter 如何获取集合中所有文档及其数据的列表?
问题描述
我一直在努力获取 firestore 集合中所有文档的列表。我想显示集合中所有文档的所有详细信息。我的文档树如下询问-
'groups' COLLECTION-----> 文档 w 'groupID' 作为参考-----> 'tasks' COLLECTION-----> 文档 w 'taskId' 作为参考。
现在我想在特定 groupID 的“任务”集合中获取所有文档及其详细信息。
Future<MyTask> getCurrentTask(String groupId) async {
MyTask retVal = MyTask();
try {
DocumentSnapshot _docSnapshot =
await _firestore.collection("groups").document(groupId).collection("tasks").get();
retVal.taskId = taskId;
retVal.taskName = _docSnapshot.data['taskName'];
retVal.dueTime = _docSnapshot.data['dueTime'];
retVal.member =_docSnapshot.data['member'];
retVal.completed = _docSnapshot.data['completed'];
} catch (e) {
print(e);
}
return retVal;
}
我试过这个,但它不起作用,因为“方法'get'没有为'CollectionReference'类型定义。” 请问如何解决这个问题?
解决方案
只需这样做:
Firestore.instance.collection("groups").document(groupID).collection("task").snapshots().listen((event) {
retVal = event.documents.map((e) => MyTask.fromJson(e.data)).toList();
});
我假设您的 MyTask 模型已经有 fromJson 方法,所以这样做。并将您的 retVal 更改为 List: List<MyTask> retVal = [];
。它将获取您的所有文档,并听取您的收藏是否有变化。