Skip to content

Firebase/FirestoreをClaude Codeで使いこなす

FirebaseプロジェクトにClaude Codeを組み合わせると、データモデルの設計からデプロイまでの工程を大幅に効率化できます。今回は実際の入力例を交えながら、具体的な活用方法を見ていきましょう。

Firestoreのデータモデル設計をClaude Codeに任せる

Section titled “Firestoreのデータモデル設計をClaude Codeに任せる”

「どのコレクション構造にすればいいか迷う」という場面はFirestore開発の定番の悩みです。Claude Codeにそのまま相談しましょう。

ユーザーが複数のプロジェクトを持ち、各プロジェクトにタスクが紐づくアプリを作ります。
Firestoreのコレクション設計をサブコレクション方式とルートコレクション方式の両方で提案してください。
それぞれのメリット・デメリットも教えてください。

このように要件を一文で渡すだけで、users/{userId}/projects/{projectId}/tasks/{taskId} のサブコレクション構成と、tasks をルートに切り出す構成の比較を即座に得られます。クエリ頻度やデータ量の見積もりを一緒に伝えると、より実用的な提案が返ってきます。

セキュリティルールの生成と検証

Section titled “セキュリティルールの生成と検証”

Firestoreのセキュリティルールは書き方を誤ると深刻な脆弱性につながります。Claude Codeを使って安全なルールを生成しましょう。

以下の条件でFirestoreセキュリティルールを書いてください。
- 認証済みユーザーのみ読み書き可能
- タスクの作成者だけが更新・削除できる
- プロジェクトのメンバーリストに含まれるユーザーのみ閲覧できる

生成されたルールをそのまま firestore.rules に貼り付け、さらに「このルールに抜け穴がないか確認して」と追加で依頼するのがおすすめです。Claude Codeは潜在的なバイパスパターンも指摘してくれます。

rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /projects/{projectId}/tasks/{taskId} {
allow read: if request.auth != null &&
request.auth.uid in get(/databases/$(database)/documents/projects/$(projectId)).data.members;
allow write: if request.auth != null &&
request.auth.uid == resource.data.createdBy;
}
}
}

Cloud Functionsの実装をスムーズに進める

Section titled “Cloud Functionsの実装をスムーズに進める”

Cloud Functionsはトリガーの種類やエラーハンドリングのパターンが多く、慣れるまで時間がかかります。Claude Codeに「Firestoreのドキュメント作成をトリガーに、SendGridでメール通知を送るFunctionを書いて」と依頼すれば、onDocumentCreated の雛形から環境変数の取り扱いまで一気に生成できます。

Claude Codeはコード生成だけでなく、firebase deploy --only functions:sendWelcomeEmail のように特定Functionだけをデプロイするコマンドの提案も行ってくれます。試行錯誤のサイクルが格段に速くなるので、ぜひ積極的に活用してみてください。

環境変数: APIキーやデータベース接続情報など、コードに直接書きたくない値をOSやサーバーに設定する仕組み。デプロイ: 開発したコードを本番サーバーに公開・適用すること。