1.7 KiB
1.7 KiB
七日签到数据库配置
部署云函数前,需要在 sign_in_activity_config 集合中创建且只创建一条 enabled: true 的有效配置。
活动中的用户通过 activityId 读取配置,因此旧配置不能在仍有用户参与时删除。
login 不判断或开启签到活动;前端调用 signInActivityInfo 时,未达到目标关卡返回 data: false,达到目标关卡则创建活动并返回完整奖励与领取状态。
{
activityId: "sign_in_v1",
enabled: true,
triggerLevel: 23,
durationDays: 14,
timezone: "UTC+8",
rewards: [
{ day: 1, items: [{ type: "infinite_health", count: 900 }] },
{ day: 2, items: [{ type: "hammer", count: 1 }] },
{ day: 3, items: [{ type: "infinite_health", count: 1800 }] },
{ day: 4, items: [{ type: "freeze", count: 1 }, { type: "magic_wand", count: 1 }] },
{ day: 5, items: [{ type: "coin", count: 600 }] },
{ day: 6, items: [{ type: "hammer", count: 1 }, { type: "freeze", count: 1 }, { type: "magic_wand", count: 1 }] },
{ day: 7, items: [{ type: "infinite_health", count: 3600 }, { type: "cat_skin", count: 1, itemId: 12 }] }
],
createdAt: Date.now(),
updatedAt: Date.now()
}
奖励 type 只允许:coin、freeze、hammer、magic_wand、infinite_health、cat_skin;count 必须大于 0。cat_skin 必须提供大于 0 的整数 itemId。
本期可直接导入的完整配置见 sign-in-activity-config.json;其中专属猫暂定为 itemId: 12,启用前必须确认客户端资源和发奖逻辑均已支持猫 12。
sign_in_activity_claims 使用后端生成的 SHA-256 _id 实现同用户、同活动、同自然日的领取幂等,无需客户端传入领取天数。