【发布时间】:2018-07-14 14:33:19
【问题描述】:
我想使用对Firestore createDocument 方法的REST 调用插入一个文档。其中一个字段是应在服务器上设置的时间戳字段。使用 Android SDK 就像用 @ServerTimestamp 注释 Date 字段并将其保持为空一样简单——现在我该如何在 REST 中做到这一点?
{
"fields": {
"timezoneId": {
"stringValue": "Europe\/London"
},
"city": {
"stringValue": "London"
},
"timestamp": {
"timestampValue": "???"
}
}
}
我尝试使用 null、0、空字符串、timestamp — 一切都失败了,并出现需要标准 RFC3339 格式的错误(例如 2018-01-31T13:50:30.325631Z)。有没有我可以使用的占位符值,或者有什么方法可以获取那个时间戳?
【问题讨论】:
-
如果无法在 REST 调用中指明您需要服务器时间戳,您可以使用Cloud Functions Firestore onCreate 触发器,在后续更新中应用时间戳。
-
是的,但我想也许有办法。 IIRC,使用 Firebase 实时数据库有一种方法(使用保留的字段/值)。
-
是的,在 RTDB 中有一个特殊的令牌。也许 Firestore 有类似的东西没有记录在案,或者它可能是一个遗漏。我敢打赌 Firestore 团队的人明天会来这里。
-
刚刚偶然发现了同样的问题,但似乎仍然没有解决方案:( iOS 和 Android SDK(仅 NODE JS)不支持每个文档的保留字段 createTime 和 updateTime 的事实使情况变得更糟。
标签: rest firebase google-cloud-firestore