> ## 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 콘솔](https://console.firebase.google.com)에서 프로젝트를 선택한 후, 사이드바의 **Settings** (기어) 아이콘을 클릭하여 **Project settings**를 여세요. 상단 바에서 **Service accounts** 탭을 열고 **Generate new private key**를 클릭한 후 **Generate key**로 확인하여 JSON 키 파일을 다운로드하세요.
  </Step>

  <Step title="IAM 역할 부여 (최소 권한 적용 시 선택 사항)">
    **Google Cloud 콘솔 → IAM**에서 서비스 계정에 CloudThinker가 필요한 역할만 부여하세요 — 읽기 전용 감사를 위한 **Viewer** / **Firebase Viewer** 역할, 또는 승인 게이트 쓰기 및 배포가 필요한 경우 Firebase 관리자 역할.
  </Step>

  <Step title="CloudThinker에 연결 추가">
    **Connections → Firebase**로 이동하여 자격 증명을 추가하세요:

    * **Service Account Key (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에서의 명시적 [승인](/ko/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 콘솔에서 새 개인 키를 생성하고 다시 연결하세요.
</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="/ko/guide/connections/gcp" width="24" height="24" data-path="images/icons/gcp.svg">
    Google Cloud Platform 연결
  </Card>

  <Card title="Approval" icon="shield-check" href="/ko/guide/approval">
    승인 게이트 작업의 작동 방식
  </Card>
</CardGroup>
