小编ste*_*vep的帖子

如何将 Stream<QuerySnapshot> 转换为 List<myObject>

我正在查询 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 的世界还很陌生,所以对我放轻松 :)

谢谢!

dart flutter

11
推荐指数
1
解决办法
1万
查看次数

如何将 Firestore 时间戳转换为 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>。但在上面的场景中我该怎么做呢?

dart flutter google-cloud-firestore

2
推荐指数
1
解决办法
2123
查看次数

标签 统计

dart ×2

flutter ×2

google-cloud-firestore ×1