【问题标题】:How do I convert a Firestore Timestamp to a Dart DateTime如何将 Firestore 时间戳转换为 Dart DateTime
【发布时间】:2019-11-30 20:59:34
【问题描述】:

我正在将 QuerySnapshot 从 Firestore 映射到我的 Dart 类之一。返回的字段之一在 Firestore 中存储为时间戳,我需要将其映射到模型中的 DateTime。

在下面的代码 sn-p 中,由于 UserTask.dueDate 是一个 DateTime 对象,它在“dueDate”上出错。

return querySnapshot.documents
    .map((doc) => UserTask(
          doc.data['id'],
          doc.data['dueDate'],
        ))
    .toList();

我知道我可以分两步完成:Timestamp ts = d["date"];日期 = ts.toDate();由于这里的答案:How Do I convert Stream<QuerySnapshot> to List<myObject>。但是在上面的场景中我该怎么做呢?

【问题讨论】:

    标签: flutter dart google-cloud-firestore


    【解决方案1】:

    你可以:

    return querySnapshot.documents
        .map((doc) => UserTask(
              doc.data['id'],
              doc.data['dueDate'].toDate(),
            ))
        .toList();
    

    return querySnapshot.documents
        .map((doc) {
            var ts = doc.data['dueDate'];
            var date = ts.toDate();
            return UserTask(
              doc.data['id'],
              date,
            );})
        .toList();
    

    【讨论】:

    • 谢谢@richard。第一个选项行不通。当我这样做时,第二个选项有效: return querySnapshot.documents .map((doc) { TimeStamp ts = doc.data['dueDate']; return UserTask( doc.data['id'], ts.toDate( ), );}) .toList();
    猜你喜欢
    • 2021-11-17
    • 2021-12-10
    • 2019-12-24
    • 2011-12-18
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 2022-01-24
    • 2012-11-09
    相关资源
    最近更新 更多