Flutter 如何将Firestore时间戳转换为Dart DateTime

Flutter 如何将Firestore时间戳转换为Dart DateTime,flutter,dart,google-cloud-firestore,Flutter,Dart,Google Cloud Firestore,我正在将一个QuerySnapshot从Firestore映射到我的一个Dart类。返回的一个字段作为时间戳存储在Firestore中,我需要将其映射到模型中的日期时间 在下面的代码段中,它在“dueDate”上出错,因为UserTask.dueDate是一个DateTime对象 return querySnapshot.documents .map((doc) => UserTask( doc.data['id'], doc.data['d

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

在下面的代码段中,它在“dueDate”上出错,因为UserTask.dueDate是一个DateTime对象

return querySnapshot.documents
    .map((doc) => UserTask(
          doc.data['id'],
          doc.data['dueDate'],
        ))
    .toList();
我知道我可以这样分为两步:时间戳ts=d[“date”];日期=ts.toDate();由于这里的答案:。但是在上面的场景中,我该如何做呢?

您可以:

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


谢谢@richard。第一种选择行不通。当我这样做时,第二个选项起作用:return querySnapshot.documents.map((doc){TimeStamp ts=doc.data['dueDate'];return UserTask(doc.data['id'],ts.toDate(),);}).toList();
return querySnapshot.documents
    .map((doc) {
        var ts = doc.data['dueDate'];
        var date = ts.toDate();
        return UserTask(
          doc.data['id'],
          date,
        );})
    .toList();