如何在 Flutter 中读取 Firestore 时间戳

Posted

技术标签:

【中文标题】如何在 Flutter 中读取 Firestore 时间戳【英文标题】:How to read Firestore timestamp in Flutter 【发布时间】:2019-09-22 04:11:49 【问题描述】:

如何将 Firestore 时间戳更改为“2 天前或 1 小时前”之类的内容?我尝试直接显示它,但出来的数据是像Timestamp(seconds=1556459022, nanosecond=0)这样的字符串。

怎么做?

【问题讨论】:

【参考方案1】:

我就是这样解决的。导入以下包:

import 'package:timeago/timeago.dart' as timeago;

现在,从 Firestore 获取时间戳。例如,字段名'timestamp',参考如下代码:

final document = Firestore.instance.collection("yourCollectionName").snapshots();

现在使用以下方法访问您的时间戳:

`Timestamp timestamp = document['timestamp'];

最后,在应用中显示结果。示例:

Text(timeago.format(DateTime.tryParse(timestamp.toDate().toString())).toString());

【讨论】:

【参考方案2】:

Firestore 的时间戳有一个 toDate() 方法,该方法将返回一个 dart DateTime 对象。

您可以使用常规 dart 解决方案,例如 DateFormattimeago 库来显示它:

timeago.format(firestoreTimestamp.toDate());

【讨论】:

谢谢,但我如何获得firestoreTimestamp ?我可以使用 DocumentSnapshot 吗? @anangfaturrohman 来自您需要访问其data 映射的文档快照。在地图内,您应该在相应字段名称下找到时间戳,例如documentSnapshot.data['FIELD_NAME_HERE'].

以上是关于如何在 Flutter 中读取 Firestore 时间戳的主要内容,如果未能解决你的问题,请参考以下文章

如何减少 Flutter App 中的 Firestore 读取?

如何在 Flutter 中创建和读取一组键值对(映射)以在 Firestore 中存储数据

Flutter 如何优化 Firestore 存储读取以防止大量不必要的读取

Flutter - 从 Cloud Firestore 读取嵌套地图

Flutter Geofire 和 Firestore 读取问题

Flutter:Streambuilder 导致 Firestore 上的读取过多