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