gpt4 book ai didi

firebase - 在 Cloud Firestore 上创建排行榜场景

转载 作者:行者123 更新时间:2023-12-04 03:09:15 25 4
gpt4 key购买 nike

我正在玩最近推出的 Cloud Firestore我想知道是否有可能在集合中获取文档的索引来创建排行榜。

例如,假设我想检索用户在排行榜中的位置。我会做这样的事情:

db.collection('leaderboard').doc('usedId')

在那里,我有一个 rank 字段来显示该用户在排行榜中的位置。但是,这意味着我必须创建一个 Cloud Function 来计算用户每次得分变化时的位置。考虑到 Firestore 按 CRUD 操作的数量收费,这可能非常昂贵。

有更好的方法吗?假设定义一个查询字段(即分数),然后在集合的数组中获取该文档的索引?

最佳答案

除非实际运行查询并读取所有文档,否则您无法找到文档在查询结果中的位置。这使得按分数排序无法仅用于确定排名。

您可以通过将等级分组为 10 或 100 个 block ,然后仅在玩家在它们之间移动时更新等级组来减少更新等级的写入次数。绝对排名可以通过在组内按分数排序来确定。

如果您将这些排名组存储为单个文档,这可能会节省大量资金。

请注意,当您增加文档的作者数量时,这会增加争用,因此您需要平衡团队规模与预期分数提交率以获得您想要的结果。

aggregation queries 中的技巧可以适应这个问题,但它们本质上具有与您在问题中描述的相同的成本权衡。

关于firebase - 在 Cloud Firestore 上创建排行榜场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46561176/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com