Firestore Flutter如何获取列表中所有文档及其数据的列表?

时间:2020-08-24 15:04:58

标签: firebase flutter dart google-cloud-firestore

我一直在努力获取Firestore集合内所有文档的列表。我想显示集合中所有文档的所有详细信息。 我的文件树是请跟随-

'groups'COLLECTION ----->以'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;
  }

我尝试了此操作,但由于“未为类型'CollectionReference'定义'get'方法”而无法使用。 请如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

只需这样做:

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 = [];。它将获取您所有的文档,并聆听集合中是否有更改。