Skip to content

fix: 参拝時の exp 二重加算を修正#115

Merged
cursor[bot] merged 2 commits into
alpha-0.2from
cursor/fix-sanpai-exp-double-increment-5520
Jun 30, 2026
Merged

fix: 参拝時の exp 二重加算を修正#115
cursor[bot] merged 2 commits into
alpha-0.2from
cursor/fix-sanpai-exp-double-increment-5520

Conversation

@kojira

@kojira kojira commented Jun 30, 2026

Copy link
Copy Markdown
Member

概要

PR #113 のレビューで指摘した既存バグ(参拝時に経験値 exp が2倍加算される)を修正します。参拝高速化/ログイン修正(#113)とは独立した別件のため、本PRで分離して対応します。

原因

exports.sanpaiapp/functions/index.js)で userRef.update を2回呼んでおり、双方に exp: FieldValue.increment(add_exp) が含まれていたため、DB上の exp フィールドが獲得ポイントの 2倍 加算されていた。

// 1回目
await userRef.update({ last_sanpai: serverTimestamp(), exp: FieldValue.increment(add_exp) })
...
// 2回目(ここでも increment → 合計 2*add_exp)
await userRef.update({ last_sanpai: serverTimestamp(), exp: FieldValue.increment(add_exp), status })

一方、レスポンス/表示用の status.exp(=userData.exp + add_exp)は1倍で計算されており、DBの値と表示値が乖離していた。

変更内容

1回目の update は「参拝可能時間のロックのため last_sanpai を先に確定させる」のが目的なので、exp の加算のみを除去。計算後の2回目の update でのみ1回だけ加算するようにした(last_sanpai の早期確定は維持)。

影響・注意

  • 今後の参拝では exp が正しく1倍で加算される(status.exp とDBが一致)。
  • 既存ユーザーの exp は過去の二重加算分を含む可能性があるが、本修正は今後の加算のみを正すもので、過去データの遡及補正は行わない(データ補正が必要な場合は別途マイグレーションを提案します)。

補足

Open in Web Open in Cursor 

cursoragent and others added 2 commits June 30, 2026 06:02
actionlint が "the runner of ... action is too old to run" を検出し
actions-test ジョブが失敗していた(alpha-0.2 既存の不具合)。
ランタイム廃止された古いアクションを互換性のある最新メジャーへ更新する。

- actions/checkout@v3 -> v4
- actions/setup-node@v2,v3 -> v4
- actions/cache@v3 -> v4
- google-github-actions/auth@v1 -> v2
- google-github-actions/setup-gcloud@v1 -> v2

入力仕様は各アクションで互換のため挙動は変えない。
ローカルで actionlint v1.7.12 がエラーなし(exit 0)を確認済み。

Co-authored-by: kojira <kojira@users.noreply.github.com>
sanpai で userRef.update を2回呼んでおり、双方に FieldValue.increment(add_exp)
が含まれていたため、DB上の exp が獲得ポイントの2倍だけ加算されていた
(表示用 status.exp は userData.exp + add_exp で1倍のため、DBと表示が乖離)。

1回目の update は参拝可能時間ロックのための last_sanpai 確定が目的なので、
exp の加算を除去し、計算後の2回目の update でのみ1回加算する。

注意: 既存ユーザーの exp は過去の二重加算分を含む可能性があるが、
本修正は今後の加算のみを正す(過去データの遡及補正は行わない)。

Co-authored-by: kojira <kojira@users.noreply.github.com>
@cursor cursor Bot force-pushed the cursor/fix-sanpai-exp-double-increment-5520 branch from 7a9c87c to e18cb70 Compare June 30, 2026 06:02
@cursor cursor Bot marked this pull request as ready for review June 30, 2026 06:13
@cursor cursor Bot merged commit 1c19f70 into alpha-0.2 Jun 30, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants