我正在尝试构建Firebase(Firestore)数据库。我感觉自己正在做不必要的文档检索,并且想知道如何改善结构以提高效率?
因此,我正在开发一个非常简单的Tag游戏(游乐场游戏)在线版本。 游戏开始时会标记一个随机玩家。每个游戏(游戏回合)都有结束日期。每个玩家有3个小时标记其他人。获胜者是被标记时间最少的玩家。
如果玩家未登录并标记其他人(在这3个小时内),则他们将被遣散。
当我登录并尝试为随机人物添加标签时,系统应优先考虑尚未被标记的随机玩家。
这就是我的games
收藏集目前的样子。
taggedPlayer
当前被标记为玩家,而leadPlayer
是赢得本回合的玩家。 taggedPlayer
登录并标记了一个随机人后,他们将根据leadPlayer
的{{1}}字段评估他们花费的时间,如果他们更快,则{{ 1}}字段将进行相应的更新。
始终会有1个正在进行的游戏(正在进行中)。为了获取一个活跃的游戏,我在每个游戏回合中都有duration
字段。因此,我正在使用leadPlayer
。
我正在跟踪每个玩家在inProgress
中被标记过的次数,以便我可以通过编程方式研究优先魔术。
最后,我打算添加where('inProgress', '==', true).limit(1)
字段,看起来像这样
taggedHistory
所以我想我的问题是-什么是更有效的获取活动游戏的方法?上面的dismissedPlayers
代码是否正确?为了向所有获奖者展示,有必要创建一个新的{
<id>: true,
<another-id>: true
}
集合并在游戏结束时进行更新,而不用从具有dismissedPlayers
的游戏中提取winners
?