目前,我们的应用程序在Firebase Cloud Firestore中存储了相当大的数据量,用于计算用户的游戏进度。例如,用户将执行x,然后我们运行函数,根据管理员输入的Firestore数据计算其给定的进度。我们基本上有四个集合,其中包括用户可以获得的徽章,确定何时可以根据他们的行为赢得徽章的信息,游戏内容类别以及升级方案(例如用户点数)需要在达到下一级别之前获得收入)。
目前,我只是对App组件安装时运行的四个集合进行了基本的get()
查询。 (它贯穿一个传奇。)但是,由于数据被下载并保存到我们的redux状态,因此它将通过redux-persist持久化。在游戏数据进入系统之后,我们实际上不需要经常更新它,因此我希望每次应用程序打开时都不必下载所有数据。
因此,我一直在调查实时更新的使用,因为他们只发送带有更新的新数据。但是,我已经读过,有一个30分钟的窗口让侦听器断开连接,然后再次运行整个查询。我真的不需要这些数据的实时更新;我只想避免下载已使用redux persist在本地保存的数据。所以我不确定实时监听器是解决这个问题的正确方法。
我的问题是如何为这个用例设计,以便最有效地使用Firestore。我应该在App打开时使用基本的get查询,使用侦听器订阅更新,或者以某种方式实现其他内容以查看是否需要更新已经存在的数据?如果我们确实需要进行更新而不必一直下载整个数据集,那么仍然知道用户的本地游戏数据是最新的。