※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を入れ忘れて本番クラッシュの原因が永遠にわからなかった話

