Firexport가이드
Firestore 보안 규칙과 색인을 내보내는 방법
Firebase 콘솔은 Firestore 보안 규칙을 편집기에, 색인을 표에 보여 주지만 둘 중 어느 것도 파일로 저장하는 버튼은 없습니다. Firebase CLI가 배포하는 파일은 firestore.rules와 firestore.indexes.json입니다. 이 파일을 얻는 방법은 세 가지입니다. 어느 것이 맞는지는 프로젝트 폴더에서 배포하는지, 그리고 규칙의 어느 버전이 필요한지에 달려 있습니다.
2026년 10월 27일 업데이트. 방법 1의 확장 프로그램 Firexport는 저희가 만든 것입니다. 방법 2와 3에는 필요 없습니다.
짧은 답
| 1. 콘솔 + 확장 프로그램 | 2. Firebase CLI | 3. 콘솔에서 복사 | |
|---|---|---|---|
| 준비 | Chrome 확장 프로그램 설치 | Node.js와 Firebase CLI | 없음 |
| 규칙 | firestore.rules, 무료 | firestore.rules | 파일에 붙여 넣음 |
| 이전 버전과 초안 | 예, 편집기에 보이는 것 그대로 | 아니요, 가장 최근에 게시된 규칙만 | 예 |
| 색인 | 표를 JSON으로, 무료. Advanced에서는 firestore.indexes.json | firestore.indexes.json | 안 됨 |
1. Firexport로 Firebase 콘솔에서 내보내기
Firexport는 Firestore의 규칙(Rules) 탭과 색인(Indexes) 탭에 내보내기 버튼을 추가하는 무료 Chrome 확장 프로그램입니다. 로그인할 것도 없고, 데이터베이스에서 읽는 것도 없습니다. Firexport는 콘솔이 이미 보여 주는 것을 저장합니다.
보안 규칙
- Chrome 웹 스토어에서 Firexport를 설치합니다.
- Firebase 콘솔에서 Firestore Database > 규칙(Rules)을 엽니다.
- 이전 버전을 내보내려면 왼쪽 목록에서 그 버전을 고릅니다. 편집기에서 게시하지 않은 변경사항은 지금 상태 그대로 내보내집니다.
- 편집기 위 줄의 오른쪽 끝에 있는 내보내기를 클릭합니다. Firexport가 편집기의 텍스트를
firestore.rules로 저장합니다.
파일에는 주석과 빈 줄까지 편집기의 내용이 바이트 하나 다르지 않고 그대로 담깁니다. 규칙 내보내기는 모든 플랜에서 무료입니다.

색인
- Firestore Database > 색인(Indexes)을 엽니다.
- 색인 추가(Add index) 옆의 내보내기를 클릭합니다.
- 무료 버전에서는 Firexport가 지금 보고 있는 표의 모든 페이지를 JSON으로 저장합니다. 수동(Manual)에서는 복합 색인, 자동(Automatic)에서는 단일 필드 예외입니다. 콘솔에 보이는 표 그대로이므로
firebase deploy가 읽을 수 없고, 파일 이름도firestore.indexes.json이 아닙니다. - Advanced에서는 Firexport가
firestore.indexes.json을 저장합니다. 어느 표를 보고 있든 복합 색인과 필드 재정의를 함께,firebase firestore:indexes가 출력하는 형식으로 담습니다. 이름 있는 데이터베이스라면 파일 이름이firestore.<database>.indexes.json입니다. - CLI의 파일과 다른 점이 하나 있습니다. TTL 정책은 있고 색인 예외는 없는 필드는 들어가지 않습니다. 콘솔이 그런 필드를 불러오지 않기 때문입니다.

Firebase CLI를 설치하지 않고, 콘솔에서 Firestore 규칙과 색인을 내보내 보세요.
2. Firebase CLI로 내려받기
Firebase CLI는 폴더에 Firestore를 설정할 때 두 파일을 모두 씁니다. firebase init firestore가 프로젝트에 배포된 규칙과 색인을 내려받습니다. 색인만 필요하면 firebase firestore:indexes가 firestore.indexes.json을 출력합니다. 둘 다 무료이며 Node.js가 필요합니다.
npm install -g firebase-tools
firebase login
# Rules and indexes, into firestore.rules and firestore.indexes.json
firebase init firestore
# Or only the indexes
firebase firestore:indexes --project your-project-id > firestore.indexes.jsoninit은 프로젝트와 파일 이름을 묻고, 그 파일들을 가리키는firebase.json을 씁니다. 내려받는 것은 가장 최근에 게시된 규칙이며, 이전 버전이나 게시하지 않은 초안은 받지 않습니다.(default)가 아닌 데이터베이스라면firestore:indexes에--database <id>를 붙입니다.init은 설정할 데이터베이스를 묻지만 규칙은 데이터베이스 이름 없이 조회하므로,firestore.rules가 의도한 데이터베이스에서 온 것인지 확인하세요.
3. 콘솔에서 규칙 복사하기
현재 규칙을 한 번만 받으면 된다면 콘솔로 충분합니다. Firestore Database > 규칙(Rules)을 열고 편집기 안을 클릭한 뒤, Ctrl+A(Mac에서는 ⌘A)로 전체를 선택해 복사하고 firestore.rules라는 파일에 붙여 넣습니다. 이전 버전을 복사하려면 먼저 왼쪽에서 그 버전을 고릅니다.
색인에는 이런 지름길이 없습니다. 색인 탭은 텍스트가 아니라 표이므로, 색인을 파일로 만들려면 색인 하나하나를 firestore.indexes.json에 직접 써 넣어야 합니다.
파일을 다시 배포하기
두 파일은 그 이름을 적어 둔 firebase.json 옆에 둡니다. firebase init firestore가 쓰는 바로 그 파일입니다.
{
"firestore": {
"rules": "firestore.rules",
"indexes": "firestore.indexes.json"
}
}그런 다음 firebase deploy --only firestore를 실행합니다. 둘 중 하나만 배포하려면 firestore:rules나 firestore:indexes를 씁니다.
- 파일에 없는 색인이 프로젝트에 있으면, CLI가 그 색인을 보여 주고 삭제하기 전에 묻습니다.
--force는 묻지 않고 삭제합니다. 파일에 없는 TTL 정책은 삭제되지 않습니다. --project를 붙이면 같은 규칙과 색인을 다른 프로젝트에, 예를 들어 프로덕션에서 스테이징으로 배포할 수 있습니다.- 배포한 규칙은 모든 클라이언트에 곧바로 적용되므로, 변경사항은 먼저 Firestore 에뮬레이터에서 시험해 보세요.
FAQ
Firebase 콘솔에서 Firestore 보안 규칙을 내려받을 수 있나요?
버튼으로는 안 됩니다. 규칙(Rules) 탭은 규칙을 복사할 수 있는 편집기에 보여 주고, firebase init firestore는 규칙을 firestore.rules로 내려받으며, Firexport 같은 브라우저 확장 프로그램은 규칙을 firestore.rules로 저장하는 내보내기 버튼을 추가합니다.
Firestore 색인을 firestore.indexes.json으로 내보내려면 어떻게 하나요?
Firebase CLI로 firebase firestore:indexes > firestore.indexes.json을 실행하거나, Firexport Advanced로 색인(Indexes) 탭에서 그 파일을 내보냅니다. 둘 다 복합 색인과 필드 재정의를 firebase deploy가 읽는 형식으로 씁니다.
Firestore 색인을 다른 프로젝트로 복사하려면 어떻게 하나요?
원래 프로젝트에서 firestore.indexes.json을 내보낸 뒤, 다른 프로젝트의 ID를 넣어 firebase deploy --only firestore:indexes --project를 실행합니다. 새 색인은 백그라운드에서 빌드되며, 색인이 사용 설정됨(Enabled)으로 표시될 때까지 그 색인이 필요한 쿼리는 실패합니다.
Firestore 규칙의 이전 버전을 받을 수 있나요?
네, 콘솔에서 받을 수 있습니다. 규칙(Rules) 탭 왼쪽에 이전 버전이 나열됩니다. 하나를 골라 확인한 뒤 복사하거나 Firexport로 내보내면 됩니다. firebase init firestore는 가장 최근에 게시된 규칙만 내려받습니다.
규칙이나 색인을 내보내면 Firestore 읽기 비용이 드나요?
아니요. 규칙과 색인 정의는 문서가 아니므로, 콘솔에서든 CLI로든 Firexport로든 저장할 때 데이터베이스에서 읽는 것이 없습니다.
