【发布时间】:2020-04-04 10:53:36
【问题描述】:
我正在使用 Android 和 Firebase 实时数据库开发一个应用程序,其中用户加入一个房间,然后当主机按下开始游戏时,所有客户端启动主游戏活动(通过房间中“已启动”子节点上的 ValueEventListener) .主游戏有 60 秒倒计时,用户在此期间造句,然后在 60 秒结束时收集并显示所有句子。
由于 60 秒计时器在不同的客户端上是如此关闭,我很难在最后收集所有句子。我需要一种方法来确保所有游戏同时结束,以便收集过程顺利且不会遗漏任何东西。
我知道 Firebase 两者都有:/.info/serverTimeOffset 和 ServerValue.TIMESTAMP,但我正在努力研究如何使用它们来同步计时器。
我尝试使用System.currentTimeMillis() + serverTimeOffset 来估计服务器时间并让所有客户端倒计时到endTime - (System.currenTimeMillis() + serverTimeOffset) 其中endTime 是主机写入数据库的时间,所有客户端都读取但计时器仍然存在关闭。
处理这种情况的最佳方法是什么?
【问题讨论】:
-
客户端之间的定时器偏移量是多少?
-
我即将实现类似的东西,但我知道由于不同的变量,定时器会在不同的设备上偏移。你是怎么解决这个问题的?
标签: android firebase firebase-realtime-database countdowntimer