我正在查询 Firestore 并将 Stream 作为 QuerySnapshots Stream 取回。我需要将流中包含的文档映射到对象列表。
下面的代码不起作用(显然)......也许我只是在看这完全错误。
List<UserTask> getUserTaskList() {
List<UserTask> list;
Stream<QuerySnapshot> stream =
Firestore.instance.collection('userTasks').snapshots();
stream.listen((snapshot) {
snapshot.documents.forEach((doc) {
UserTask userTask = UserTask(
doc.data['id'],
doc.data['Description'],
etc...);
list.add(userTask);
});
});
return list;
}
Run Code Online (Sandbox Code Playgroud)
使用上面的代码,由于它不等待整个流(或实际中的任何一个),因此 list 始终返回为 null。简而言之,如何将我的流转换为列表?
注意:我对 Dart 的世界还很陌生,所以对我放轻松 :)
谢谢!
我正在将 QuerySnapshot 从 Firestore 映射到我的 Dart 类之一。返回的字段之一作为时间戳存储在 Firestore 中,我需要将其映射到模型中的日期时间。
在下面的代码片段中,由于 UserTask.dueDate 是 DateTime 对象,因此在“dueDate”上出错。
return querySnapshot.documents
.map((doc) => UserTask(
doc.data['id'],
doc.data['dueDate'],
))
.toList();
Run Code Online (Sandbox Code Playgroud)
我知道我可以像这样分两步完成: Timestamp ts = d["date"]; 日期 = ts.toDate(); 由于这里的答案:How Do I conversion Stream<QuerySnapshot> to List<myObject>。但在上面的场景中我该怎么做呢?