> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cloudthinker.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Firebase

> プロジェクト・アプリの一覧、SDK設定の参照、Firestore/Storageセキュリティルール監査のためにFirebaseをCloudThinkerに接続します

Firebaseプロジェクトを接続して、CloudThinkerエージェントがプロジェクトとアプリの一覧表示、SDK設定の読み取り、Firestore・Storage・Realtime Databaseのセキュリティルール監査、デプロイ状態の確認、Firebaseドキュメントの検索を実行できるようにします。また、アプリの作成やデプロイなど承認が必要な制御操作も行えます。

Firebaseの認証は**Google Cloudサービスアカウントキー**（JSONファイル）で行います。サービスアカウントの**IAMロール**がエージェントのアクセス範囲を決定します。監査用には読み取り専用のFirebaseロールを付与し、書き込みやデプロイが必要な場合にのみより広いロールを付与してください。

***

## 前提条件

* CloudThinkerで検査したい**Firebaseプロジェクト**。
* そのプロジェクトの**サービスアカウントキー（JSON）**。
* プロジェクトのGoogle CloudでサービスアカウントキーとIAMロールを作成・割り当てる権限。

<Info>
  サービスアカウントJSONは完全な認証情報です。IAMロールを最小権限にスコープしてください。読み取り専用のFirebaseロールで一覧表示とルール監査が可能です。
</Info>

***

## セットアップ

<Steps>
  <Step title="サービスアカウントキーを生成">
    [Firebase Console](https://console.firebase.google.com)でプロジェクトを選択し、サイドバーの**設定**（歯車）アイコンをクリックして**プロジェクトの設定**を開きます。上部バーの**サービス アカウント**タブを開き、**新しい秘密鍵の生成**をクリックし、**キーを生成**で確認してJSONキーファイルをダウンロードします。
  </Step>

  <Step title="IAMロールを付与（オプション、最小権限用）">
    **Google Cloud Console → IAM** で、サービスアカウントにCloudThinkerが必要とするロールのみを付与します。読み取り専用監査には**Viewer** / **Firebase Viewer**ロール、承認ゲートの書き込みやデプロイが必要な場合はFirebase管理者ロールを使用します。
  </Step>

  <Step title="CloudThinkerに接続を追加">
    **Connections → Firebase** に移動して認証情報を追加します：

    * **サービスアカウントキー（JSON）**：ダウンロードした `.json` キーファイルをアップロードエリアにドラッグするか、クリックしてファイルを選択します

    **Connect** をクリックします。CloudThinkerがキーを読み取り、そこからアクティブプロジェクトを設定して **Connected** ステータスに変わります。
  </Step>
</Steps>

<Warning>
  ダウンロードしたJSONはパスワードと同様に扱ってください。シークレットマネージャーに保管し、CloudThinkerへのアップロード後はローカルのコピーを削除してください。
</Warning>

***

## 接続詳細

| フィールド                             | 説明                                                                                            | 例                                                            |
| --------------------------------- | --------------------------------------------------------------------------------------------- | ------------------------------------------------------------ |
| **GOOGLE\_SERVICE\_ACCOUNT\_KEY** | Google Cloudサービスアカウントキー全体のJSON。CloudThinkerはその `project_id` からアクティブなFirebaseプロジェクトを自動的に設定します。 | `{ "type": "service_account", "project_id": "my-app", ... }` |

<Note>
  CloudThinkerはキーの `project_id` からアクティブプロジェクトを解決するため、プロジェクトIDや設定ファイルを別途指定する必要はありません。
</Note>

***

## 必要な権限

読み取り操作（プロジェクト、アプリ、SDK設定、セキュリティルールの検査）は**ビューアーレベル**のFirebase/GCPロールで機能します。制御操作（プロジェクトやアプリの作成、機能の初期化、アクティブプロジェクトの切り替え、デプロイ）には、それを許可するロールと、CloudThinkerでの明示的な[承認](/ja/guide/approval)の両方が必要です。

<Tip>
  最小権限を守ってください。監査には読み取り専用のFirebaseロールを付与し、実際に必要になるまで書き込み可能なロールは保留してください。ガードレールを外すのではなく、制御操作は承認ゲートのままにしておいてください。
</Tip>

***

## エージェントの機能

接続後、エージェントはFirebaseプロジェクト、アプリ、ルールへの読み取りアクセスを持ちます。

| 機能                 | 説明                                                                  |
| ------------------ | ------------------------------------------------------------------- |
| **プロジェクトとアプリ**     | アクセス可能なプロジェクトの一覧、アクティブプロジェクトの検査、iOS・Android・Webアプリの一覧表示             |
| **SDK設定**          | プラットフォームまたはアプリのFirebase SDK設定を読み取り                                  |
| **セキュリティルール**      | アクセス監査のためFirestore・Storage・Realtime Databaseのルールを読み取り               |
| **デプロイ状態**         | デプロイ状態の確認                                                           |
| **Firebaseドキュメント** | 公式FirebaseおよびGoogle開発者ドキュメントを検索                                     |
| **プロジェクトとアプリの制御**  | プロジェクト・アプリ・Android SHA鍵の作成、機能の初期化、アクティブプロジェクトの切り替え、デプロイ — **承認が必要** |

<Info>
  作成・初期化・デプロイ・プロジェクト切り替えのアクションは承認ゲートされています。CloudThinkerは実行前に確認を求めます。読み取り専用操作は承認なしで実行されます。
</Info>

### 接続を確認する

```text theme={null}
@alex show my Firebase environment and list the projects I can access
```

### プロンプト例

```text theme={null}
@alex review the current Firestore and Storage security rules, flag any that allow unauthenticated writes, and #recommend tighter definitions
@alex list all Firebase projects and the apps registered in the active project and #report as a table
@alex show the Firebase SDK config for my web app
```

<Note>
  複数のプロジェクトにアクセス可能でアクティブなものがない場合は、エージェントが適切なプロジェクトにスコープできるよう、プロンプトにプロジェクト名を指定してください。
</Note>

***

## トラブルシューティング

<Accordion title="認証失敗 / 認証情報が利用できない">
  サービスアカウントJSONが無効、不完全、または文字が欠けた状態で貼り付けられています。Firebase Consoleで新しい秘密鍵を生成して再接続してください。
</Accordion>

<Accordion title="エージェントがアクティブプロジェクトが選択されていないと言う">
  CloudThinkerはキーの `project_id` からアクティブプロジェクトを設定します。キーに `project_id` がない場合や複数のプロジェクトにアクセス可能な場合、エージェントはそれらを一覧表示してどれを使用するか尋ねます。続行するにはプロジェクトを指定してください。
</Accordion>

<Accordion title="プロジェクト、ルール、またはデプロイで権限が拒否された">
  サービスアカウントに該当製品のFirebase/GCP IAMロールがありません。Google Cloud IAMで適切なロールを付与して再接続してください。
</Accordion>

<Accordion title="制御アクションが実行されなかった">
  作成・初期化・デプロイには、そのアクションを許可するIAMロールとCloudThinkerでの明示的な承認の両方が必要です。プロンプトが表示されたらアクションを承認し、サービスアカウントのロールがそれを許可していることを確認してください。
</Accordion>

***

## セキュリティ

* **最小権限** — エージェントがユースケースに必要な権限のみを付与します。まず読み取り専用から始め、後から拡張してください。
* **デフォルトで読み取り専用** — エージェントにこの接続で変更を行わせる場合を除き、読み取り専用の認証情報を使用してください。
* **認証情報のローテーション** — 通常のスケジュールに従ってキーとトークンをローテーションしてください。接続を更新すると、CloudThinker が新しい値を自動的に取得します。
* **オフボーディング時に失効** — 接続を削除するか、チームメンバーが退職する際には、プロバイダー側で認証情報を無効化してください。

- **制御操作の承認** — 作成・初期化・デプロイのアクションは、ガードレールを外すのではなく承認ゲートのままにしておいてください。
- **キーを保護** — サービスアカウントJSONは完全な認証情報です。ソースコントロールにコミットしたり、平文で共有したりしないでください。

***

## 関連

<CardGroup cols={2}>
  <Card title="Google Cloud接続" icon="https://mintcdn.com/cloudthinker/aLd-ttc-SCW-aFky/images/icons/gcp.svg?fit=max&auto=format&n=aLd-ttc-SCW-aFky&q=85&s=2cc7040a8e4cd401b1c388f8b0cd6fe3" href="/ja/guide/connections/gcp" width="24" height="24" data-path="images/icons/gcp.svg">
    Google Cloud Platformを接続
  </Card>

  <Card title="承認" icon="shield-check" href="/ja/guide/approval">
    承認ゲートアクションの仕組み
  </Card>
</CardGroup>
