如何更有效地构建Firestore数据库?

时间:2018-11-26 20:48:14

标签: firebase google-cloud-firestore

我正在尝试构建Firebase(Firestore)数据库。我感觉自己正在做不必要的文档检索,并且想知道如何改善结构以提高效率?

因此,我正在开发一个非常简单的Tag游戏(游乐场游戏)在线版本。 游戏开始时会标记一个随机玩家。每个游戏(游戏回合)都有结束日期。每个玩家有3个小时标记其他人。获胜者是被标记时间最少的玩家。

如果玩家未登录并标记其他人(在这3个小时内),则他们将被遣散。

当我登录并尝试为随机人物添加标签时,系统应优先考虑尚未被标记的随机玩家。

这就是我的games收藏集目前的样子。

Games (rounds) collection

taggedPlayer当前被标记为玩家,而leadPlayer是赢得本回合的玩家。 taggedPlayer登录并标记了一个随机人后,他们将根据leadPlayer的{​​{1}}字段评估他们花费的时间,如果他们更快,则{{ 1}}字段将进行相应的更新。

始终会有1个正在进行的游戏(正在进行中)。为了获取一个活跃的游戏,我在每个游戏回合中都有duration字段。因此,我正在使用leadPlayer

我正在跟踪每个玩家在inProgress中被标记过的次数,以便我可以通过编程方式研究优先魔术。

最后,我打算添加where('inProgress', '==', true).limit(1)字段,看起来像这样

taggedHistory

所以我想我的问题是-什么是更有效的获取活动游戏的方法?上面的dismissedPlayers代码是否正确?为了向所有获奖者展示,有必要创建一个新的{ <id>: true, <another-id>: true } 集合并在游戏结束时进行更新,而不用从具有dismissedPlayers的游戏中提取winners

0 个答案:

没有答案