gpt4 book ai didi

firebase - 使用 FieldValue.serverTimestamp 和 Date.now 的区别

转载 作者:行者123 更新时间:2023-12-04 16:43:00 25 4
gpt4 key购买 nike

firestore.FieldValue.serverTimestamp 与使用 Date.now()(从中央服务器)之间是否存在任何性能或功能差异?

最佳答案

如果您将客户端的 Date.now() 写入数据库,您就是在写入客户端 时间戳。另一方面,如果您编写 firestore.FieldValue.serverTimestamp,它最终会写入服务器端时间戳。

两者之间有几种类型的变化:

  1. 客户端上的时间戳经常与服务器上的实际时间不同,这意味着这两个值将不同。
  2. 如果您从客户端写入时间戳,则意味着恶意用户可以提供他们自己的值。
  3. 保证客户端在连接到数据库时会有一些延迟,这意味着即使在一个完美设置的客户端上,并且有一个非常友好的用户,这些值之间仍然会有差异。
  4. 如果您使用服务器时间戳,您可以在安全规则中强制执行它的值。请参阅 Request.time 的文档了解这方面的信息。

请注意,使用任一值都有有效的用例。例如:

  • 如果您想记录用户何时以他们自己的方式发起操作,您需要使用客户端时间戳。
  • 如果您想记录某些数据最终写入数据库的时间,您需要使用服务器端时间戳。

关于firebase - 使用 FieldValue.serverTimestamp 和 Date.now 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55904068/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com