我们在 Firebase 中有一个由多个客户端更新的数据集。我们想要跟踪数据集日期时间的最后修改。我们不能依赖客户端设置修改的日期时间,因为他们的本地时钟可能完全不同步。
有没有办法可以根据数据集的时钟将 Firebase 标记时间戳记到数据集中以跟踪上次修改的时间?
我们在 Firebase 中有一个由多个客户端更新的数据集。我们想要跟踪数据集日期时间的最后修改。我们不能依赖客户端设置修改的日期时间,因为他们的本地时钟可能完全不同步。
有没有办法可以根据数据集的时钟将 Firebase 标记时间戳记到数据集中以跟踪上次修改的时间?
我们目前正在开发一些功能来支持这一点,但我们现在没有办法做到这一点。但是请注意,“push()”创建的 ID 是按时间顺序排列的,我们在创建它们时会尽可能补偿客户端时钟偏差,所以如果您要做的只是确保一些按顺序写入列表,您可以使用 push() 来完成。
我很想听听您希望此功能的外观。如果您有时间,我将不胜感激发电子邮件给 firebase 的 Andrew...
更新: Firebase 现在支持设置服务器时间戳以及直接在客户端访问服务器时间。请参阅此处的文档: https ://www.firebase.com/docs/managing-presence.html
我们在同一条船上......我想迟早会有许多 Firebase 客户端遇到这个问题,因为这是我们在旧的“客户端-服务器”时代从未遇到过的“新类型”问题。
当前的解决方案(仍在制定中)是在初始化时估计客户端和我们的服务器之间的时间差,并进行补偿,
所以 - 我们有x = new Date()的地方,
现在是x = ourDateService.now()
我们的 now() 函数只是做new Date() + diff
这对我们有用,因为我们不需要毫秒精度,而且它是一个加载一次的单页应用程序,所以我们可以进行差异检查并在加载时初始化我们的DateService,但这个解决方案并不适用于所有人(当然,您可以将其存储在 localstorage/cookie 中并每天左右重新验证)。