首页 > 解决方案 > 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'类型定义。” 请问如何解决这个问题?

标签: firebaseflutterdartgoogle-cloud-firestore

解决方案


只需这样做:

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 = [];。它将获取您的所有文档,并听取您的收藏是否有变化。


推荐阅读