スキル firebase
🔥

firebase

安全

安全なFirebaseアプリを作成する

Firebaseはバックエンド開発を簡素化しますが、セキュリティルールとデータモデリングには漏洩やコスト超過を防ぐための専門知識が必要です。このスキルはFirebaseのベストプラクティスに関する専門的ガイダンスを提供します。

対応: Claude Codex Code(CC)
🥉 73 ブロンズ
1

スキルZIPをダウンロード

2

Claudeでアップロード

設定 → 機能 → スキル → スキルをアップロードへ移動

3

オンにして利用開始

テストする

「firebase」を使用しています。 チームメンバーがすべてのタスクを読み取りできますが、自分のタスクのみを編集できるtasksコレクションのセキュリティルールを生成してください

期待される結果:

rules version 2;

service cloud.firestore {
match /databases/{database}/documents {
match /tasks/{taskId} {
allow read: if request.auth != null;
allow write: if request.auth.uid == resource.data.ownerId;
}
}
}

「firebase」を使用しています。 ルームとメッセージを伴うチャットアプリケーションをFirestoreでどのようにモデル化すればよいですか?

期待される結果:

推奨構造:
- rooms/{roomId}: { name, createdAt, memberIds[] }
- rooms/{roomId}/messages/{messageId}: { text, senderId, sentAt }

主要な決定事項:
1. サブコレクションによりルームドキュメントを小さく保つ
2. 権限チェックのためにmemberIdsを非正規化
3. 順序付けにはドキュメントIDではなくsentAtを使用

セキュリティ監査

安全
v1 • 2/25/2026

Static analysis flagged external_commands and weak_crypto patterns, but manual review confirms these are false positives. The backtick syntax on line 57 is markdown code formatting, not shell execution. The cryptographic algorithm flags on lines 3, 15, 39, 45, 60 are triggered by generic words like 'security' and 'design', not actual weak crypto usage. This is a legitimate Firebase development skill with no security issues.

1
スキャンされたファイル
61
解析された行数
2
検出結果
1
総監査数
中リスクの問題 (2)
False Positive: Shell Command Detection
Static scanner detected backtick syntax at SKILL.md:57 as Ruby/shell command execution. Manual review confirms these are markdown inline code formatting backticks (`nextjs-app-router`), not command execution.
False Positive: Weak Cryptographic Algorithm
Static scanner flagged 'weak cryptographic algorithm' at multiple lines. Manual review shows these are false positives triggered by generic words like 'security', 'design', and 'Firebase' - no actual cryptographic algorithms are present.
監査者: claude

品質スコア

38
アーキテクチャ
100
保守性
87
コンテンツ
50
コミュニティ
95
セキュリティ
91
仕様準拠

作れるもの

新しいFirestoreデータベースを保護する

適切な読み取り/書き込み権限を持つユーザ所有のデータコレクションの本番環境対応セキュリティルールを生成する

ソーシャルアプリデータをモデル化する

投稿、コメント、いいねを含むソーシャルフィードのFirestoreコレクションとクエリを設計する

ローカル開発環境を設定する

Firebaseエミュレータを設定して、本番環境にデプロイせずにAuth、Firestore、Functionsをテストする

これらのプロンプトを試す

基本的なセキュリティルール
usersというコレクションのFirestoreセキュリティルールを生成してください。ユーザーは自分のドキュメントのみを読み取りおよび書き込みできます
データモデル設計
投稿、コメント、いいねを含むブログのFirestoreデータモデルを設計してください。コレクション構造とドキュメントの例を示してください
Cloud Functionの設定
Authenticationで新しいユーザーが作成されたときにトリガーされ、Firestoreにデフォルトのプレゼンスドキュメントを作成するFirebase Cloud Functionsを作成してください
コスト最適化
このFirestoreクエリパターンを確認し、読み取りコストを削減するための最適化を提案してください:collection('posts').where('author', '==', userId).get()

ベストプラクティス

  • 常にリレーションシップではなくクエリパターンに基づいてデータモデルを設計してください
  • 本番環境のコレクションにデプロイする前にセキュリティルールを書いてください
  • すべての開発とCIテストにFirebaseエミュレータを使用してください

回避

  • クライアント側の検証のみに依存してセキュリティルールをスキップする
  • 深いネストを持つリレーショナルデータベースのようにFirestoreをモデル化する
  • ページネーションや制限なしにコレクション全体に特_listenerをアタッチする

よくある質問

FirestoreとRealtime Databaseの違いは何ですか?
Firestoreはより新しい方で、より良いクエリ機能とスケーラビリティがあります。Realtime Databaseはシンプルな同期シナリオに対して速いです。新しいプロジェクトのほとんどにはFirestoreを選択してください。
Firebase関数を保護するにはどのようにすればよいですか?
Firebase Authenticationを使用して呼び出し元を検証してください。すべての入力データを検証してください。サービスアカウントの認証情報を公開しないでください。必要な場合にのみ--publicフラグでデプロイしてください。
独自のバックエンドでFirebaseを使用できますか?
はい、サーバー上でFirebase Admin SDKを使用して、信任された操作のためにセキュリティルールをバイパスしながら、ユーザーのためのクライアント側ルールを維持することができます。
Firestoreでコスト失控を防ぐにはどのようにすればよいですか?
クエリに制限を追加し、複合インデックスを賢く使用し請求アラートを設定し、使用状況ダッシュボードを定期的に監視してください。
Firebaseエulatorsとは何ですか?
Firestore、Auth、Cloud Functions、その他のサービスをシミュレートするローカル開発サーバーです。コストを発生させたり本番環境に影響を与えずにテストするために使用します。
Firebaseでユーザーロールを処理するにはどのようにすればよいですか?
FirestoreユーザードキュメントまたはIDトークンのカスタムクレームにロールを保存してください。クライアントセキュリティルールとCloud Functionsの両方でロールを確認してください。

開発者の詳細

作成者

sickn33

ライセンス

MIT

参照

main

ファイル構成

📄 SKILL.md