【Claude Code 失敗談 #13】FirebaseをClaude Codeに設定させたらテストモードのままリリースした話

社員ブログ

※Claude Codeを使用して記事を作成しています。

シリーズ:Claude Codeを使ったAndroidアプリ開発 失敗談

  • #13:FirebaseをClaude Codeに設定させたらテストモードのままリリースした話 ← 今回

はじめに

Claude Codeにすべてお任せしていると、Firebaseの設定についても深く考えなくなります。
セキュリティルールを設定したつもりが、実はテストモードのままリリースしていた話です。

やらかしたこと

Firebaseの導入時、Claude Codeに「テストモードで始めて、後でルールを設定する」と言われ、そのまま進めました。

「後で設定しよう」と思っていたセキュリティルール。リリース直前のチェックリストにFirebaseのルール確認が入っておらず、テストモードのままリリースしてしまいました。

テストモードとは「誰でも読み書きできる」状態です。
ログインなしで他人のメモが読めてしまう、最悪の状態でした。

テストモードの恐ろしさ

Firestoreのテストモードのルールはこうなっています:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if true; // 誰でもOK
    }
  }
}

if true つまり全員に全データの読み書きを許可しています。

どう直したか

本番用のセキュリティルールをClaude Codeと一緒に設定しました。

Firestoreのセキュリティルールを本番用に設定してください。

条件:
・認証済みユーザーのみアクセス可能
・自分のユーザーIDに紐づくデータのみ読み書き可能
・他ユーザーのデータは読み取りも不可

memos コレクションとその中のドキュメントに適用してください。

リリースチェックリストに必ず入れる

この失敗以降、リリース前のチェックリストに追加しました。

  • [ ] Firestoreのセキュリティルールが本番用になっているか
  • [ ] Firebase Storageのセキュリティルールが本番用になっているか
  • [ ] テストモード(allow read, write: if true)が残っていないか

まとめ

Firebaseのセキュリティルールは「動作に影響しない設定」のため、リリース直前まで見落としがちです。
Claude Codeを使ったFirebase導入時には、「テストモードは開発中だけ」を忘れずに、本番リリース前に必ず確認しましょう。

次回:【Claude Code 失敗談 #14】Crashlyticsを入れ忘れて本番クラッシュの原因が永遠にわからなかった話

タイトルとURLをコピーしました