如何使用Firestore在多个客户端上实现同步的javascript倒计时?

时间:2019-02-01 14:59:48

标签: javascript firebase google-cloud-firestore

一个客户端可以开始倒计时,并且在所有其他客户端上都可以看到。

理想情况:

  • 精度为1秒
  • 任何客户端都可以暂停或重置倒计时
  • 如果没有客户端连接,倒数计时将继续

我曾尝试将结束时间(倒计时结束时)存储在Firestore中,但是我为不同的客户端的时间相差几秒钟而感到困惑。

1 个答案:

答案 0 :(得分:0)

我认为这些是必需的步骤

1-用户开始递减计数时,将结束时间存储为服务器时间戳记

2-当用户连接时,查询存储的时间和服务器时间戳,计算差异并在屏幕上递减计数

3-如果时差小于0(服务器时间>存储时间),则您知道计数器已结束。

无需检查用户的本地时间

更新

var sessionsRef = firebase.database().ref("Time");
sessionsRef.push({counter: ServerValue.TIMESTAMP});

然后像读取带有侦听器的子节点一样正常读取它。