【发布时间】:2020-02-28 22:52:07
【问题描述】:
我在 Firestore 文档中有一个时间戳字段。 (参考 created_at)
我想将它传递给服务器一个 Datetime Zulu 时间格式,如下所示。
2019-10-31T10:29:45Z
如何将 Firestore 时间戳转换为 Zulu 时间格式字符串?
这是我在 Firebase 中的 onCreate 函数,在 Firestore 中创建文档后,我读取了时间戳字段并打印到控制台
exports.createRecord = functions.firestore
.document(`record/{recordId}`)
.onCreate(async (snap, context) => {
console.log(snap.data().created_at);
});
这将显示在 Firebase 函数日志中
Timestamp { _seconds: 1573496322, _nanoseconds: 897429000 }
如何将其转换为这种形式:
2019-11-01T01:36:56.233018Z
2019-01-01T00:00:00Z
2019-10-31T10:29:45Z
【问题讨论】:
-
我建议为您正在使用的语言找到一个日期处理库,并使用它来格式化日期。 Firestore SDK 无法为您执行此操作。请注意,Firestore 时间戳也不编码时区。
-
我认为应该,我想在 Firebase 函数中实现这个并在服务器上做一个 http 发布
-
但是,不清楚您在问什么。您提到了
onCreate函数,但您正在展示onRequest的示例。我可以看到in the docsonCreate提供了一个context,而这又提供了一个已经是 RFC3339 格式的timestamp。那么你需要在哪里进行转换呢?如果created_at是您自己数据中的一个字段,那么您的代码中引用的数据在哪里?请编辑您的问题以准确显示您正在尝试的代码。谢谢。 -
我还没有实现 onCreate() 函数,所以这是要做的事情(当我们弄清楚但 oncreate 应该触发插入到 firestore 时会到达那部分)。在创建包含时间戳的文档时,我想将该信息传递给服务器端,并且服务器需要这种类型的时间格式“2019-10-31T10:29:45Z”。如果您说时间戳已经转换为 RFC3339,那么这个问题是无关紧要的。这意味着一旦我弄清楚 oncreate 并从文档中提取时间戳,我就需要尝试并更新它。
标签: firebase datetime google-cloud-firestore timestamp google-cloud-functions