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だけをデプロイするコマンドの提案も行ってくれます。試行錯誤のサイクルが格段に速くなるので、ぜひ積極的に活用してみてください。