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,那么我会得到什么不同?
我可以想象会有一些精度的提高吗?多少钱?或者是别的什么东西?
发布于 2020-02-15 22:00:51
Timestamp.now()
使用客户端机器的时钟生成时间戳,该时钟可能是错误的,甚至是严重错误的。
FieldValue.serverTimestamp()
将一个令牌编码到文档字段中,每当收到写入操作时(而不是在从客户端发出时),该令牌将使用谷歌服务器上的时钟被转换为时间戳。所有谷歌服务的时钟时间都保证是正确的,无论恶意用户做什么。
如果您绝对需要一个正确的时间,特别是需要由安全规则使用request.time检查的时间,则应该使用服务器时间戳。如果需要客户端的时钟时间,请使用Timestamp.now()
。通常情况下,首选服务器时间戳。
https://stackoverflow.com/questions/60243420
复制相似问题