You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Firestore数据库字段中存储排名区间数据用于游戏玩家奖品分发

Firestore排名奖励区间数据存储方案

存储结构设计

你可以在Firestore中创建专门的配置集合存储奖励规则,无需拆分多个文档,后续读取规则时仅需一次查询即可获取全量区间配置:

  • 集合名:reward_configs(用于存放所有全局业务配置)
  • 文档ID:固定为rank_rewards(手动指定,方便直接读取无需额外查询)
  • 文档内字段结构如下:
{
  // 奖励规则数组,每个元素对应一个排名区间的奖励配置
  "rank_reward_rules": [
    {
      "min_rank": 1,
      "max_rank": 200,
      "coin_reward": 5000
    },
    {
      "min_rank": 201,
      "max_rank": 400,
      "coin_reward": 2500
    },
    {
      "min_rank": 401,
      "max_rank": 500,
      "coin_reward": 1000
    }
  ],
  // 可选字段,记录配置最后更新时间,方便后续追溯规则变更
  "update_time": "2024-xx-xxTxx:xx:xxZ"
}

控制台手动添加步骤

如果你直接在Firebase控制台操作,可以按照以下流程添加:

  1. 进入Firebase控制台对应项目的Firestore数据库页面
  2. 点击「开始集合」,输入集合ID reward_configs 后点击下一步
  3. 文档ID处不要选自动生成,手动输入rank_rewards
  4. 新增第一个字段:字段名填rank_reward_rules,类型选择「数组」
  5. 点击数组内的「添加值」,值类型选择「映射」,在映射内依次添加三个字段:
    • min_rank,类型为数字,值填1
    • max_rank,类型为数字,值填200
    • coin_reward,类型为数字,值填5000
  6. 重复第5步,依次添加剩下两个区间的映射配置即可
  7. 可选添加update_time字段,类型选择时间戳,最后保存文档

代码写入示例(Web SDK)

如果要通过代码写入配置,可参考以下示例:

import { doc, setDoc } from "firebase/firestore"; 
import { db } from "./firebase-init"; // 替换为你自己的Firebase初始化文件路径

const saveRankRewardConfig = async () => {
  const configDocRef = doc(db, "reward_configs", "rank_rewards");
  await setDoc(configDocRef, {
    rank_reward_rules: [
      { min_rank: 1, max_rank: 200, coin_reward: 5000 },
      { min_rank: 201, max_rank: 400, coin_reward: 2500 },
      { min_rank: 401, max_rank: 500, coin_reward: 1000 }
    ],
    update_time: new Date()
  });
};

内容的提问来源于stack exchange,提问作者Kumar Harsh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 21:54:03