从Dart将时间戳记写入Cloud Firestore

时间:2019-08-10 12:52:13

标签: datetime flutter dart google-cloud-firestore timestamp

我正在尝试将DateTime作为时间戳写入Cloud Firestore,如果我尝试添加List<String, dynamic>,则该日期不起作用,该日期只是在Firestore中显示为String值。

例如,如果我有一个User班级:

class User {
  final String name;
  final DateTime birthday;

  User(this.name, this.birthday)
}

我这样写:

Firestore.instance.collection("users").add({
  "name":user.name, 
  "date":Timestamp.fromDate(user.birthday)
})

它工作正常,并且日期在Firestore中正确显示为时间戳类型。

但是,如果我尝试创建一个Map<String, dynamic>并将其添加:

class User {
  ...
  Map<String, dynamic> toMap() {
    return {
      "name": name,
      "date": Timestamp.fromDate(birthday)
    }
  }
}

并这样写:

Firestore.instance.collection("users").add(user.toMap())

然后在Firestore中将其显示为String而不是Timestamp。

有人知道为什么吗?

0 个答案:

没有答案