首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >admin.firestore.Timestamp.now()和admin.firestore.FieldValue.serverTimestamp()之间有什么区别?

admin.firestore.Timestamp.now()和admin.firestore.FieldValue.serverTimestamp()之间有什么区别?
EN

Stack Overflow用户
提问于 2020-02-15 21:47:55
回答 1查看 1.5K关注 0票数 7

https://firebase.google.com/docs/reference/js/firebase.firestore.FieldValue.html#servertimestamp

https://firebase.google.com/docs/reference/js/firebase.firestore.Timestamp.html#now

我不知道我是否理解其中的区别。有人能解释一下吗?

也就是说,如果我只是使用firebase.firestore.Timestamp.now()作为我将要编写的对象的时间戳属性,而不是firebase.firestore.Timestamp.now,那么我会得到什么不同?

我可以想象会有一些精度的提高吗?多少钱?或者是别的什么东西?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-15 22:00:51

Timestamp.now()使用客户端机器的时钟生成时间戳,该时钟可能是错误的,甚至是严重错误的。

FieldValue.serverTimestamp()将一个令牌编码到文档字段中,每当收到写入操作时(而不是在从客户端发出时),该令牌将使用谷歌服务器上的时钟被转换为时间戳。所有谷歌服务的时钟时间都保证是正确的,无论恶意用户做什么。

如果您绝对需要一个正确的时间,特别是需要由安全规则使用request.time检查的时间,则应该使用服务器时间戳。如果需要客户端的时钟时间,请使用Timestamp.now()。通常情况下,首选服务器时间戳。

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60243420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档