DateTime
不是时间戳,而是所谓的哨兵 - 发送到服务器的标记,服务器然后识别并解释以编写当前时间戳。这意味着无法将其转换为客户端的时间戳。您能做的就是到服务器上的文档,并观察到该文档的值。该值将是有效的时间戳。
FieldValue.serverTimestamp()
字段,则可以将其转换为
FieldValue.serverTimestamp()
FieldValue.serverTimestamp()
;;
serverTimeStamp
DateTime
ok,这在mycase
作为解决方法中起作用。我正在使用json_annotation,json_serilaizable,build_runner.这些是库版本:
BUILD_RUNNER: ^2.1.2json_annotation: ^4.1.0
final DateTime dateTimeFromServerTimeStamp =
(documentSnapshot.data()['serverTimeStamp'] as Timestamp).toDate();
我希望这很有用。
要有效地管理DART类中的服务器时间戳,请考虑以下实现为例如:
DateTime timestamp = DateTime.parse( json['ts'].toString() );
解释:
默认构造函数:
requeSttaken({require this.requestid,需要this.takenat}):用特定的时间戳初始化对象。 named构造函数:
requeStTaken.takenatServertime({require this.requestid}):TOMAP()方法:将对象转换为适合Firestore存储的MAP
。 IT使用TakeAtserVertimestamp(如果有);否则,它将返回到本地takeat值。