목표: Firebase 프로젝트가 뭔지와 그 안에서 Firestore를 어떻게 만드는지 정리
https://console.firebase.google.com/ 1) 프로젝트 만들기 클릭
2) 프로젝트 이름 입력 (용도별 권장)
3) Google Analytics 켤지 선택 (처음엔 꺼도 됨 → 나중에 켜기 가능)
4) 생성 완료
1) 좌측 메뉴 Build → Firestore Database
2) 에디션 선택: 보통 Standard (일반적인 모바일/웹 앱에 적합)
3) 데이터베이스 ID: (default) 권장
4) 위치(리전): 사용자/백엔드와 가까운 단일 리전 선택 (예: asia-northeast3 (Seoul))
5) 시작 모드(보안 규칙): 프로덕션 모드 권장 (기본 차단)
왜?
(default)는 가장 일반적이고, 다DB가 필요한 특수 케이스 아니면 충분 콘솔 → Firestore → 규칙(Rules) 탭 → 붙여넣기 → 게시(Publish)
A. 로그인 사용자만 접근 (가장 무난)
// rules_version = '2';
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth != null;
}
}
}
B. 사용자 본인 문서만 허용 (예: /users/{uid})
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /users/{uid} {
allow read, write: if request.auth != null && request.auth.uid == uid;
}
// 다른 컬렉션 규칙은 필요에 따라 추가
}
}
C. 완전 차단(잠그기)
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if false;
}
}
}
1) npm i -g firebase-tools (최초 1회)
2) 프로젝트 루트에서 firebase init emulators → Firestore 체크
3) firebase emulators:start 실행
4) 앱에서 에뮬레이터 호스트/포트(기본 localhost:8080)로 연결
왜 사용하는지
-dev, -prod 두 프로젝트로 나누면 실수 방지 1) 콘솔 → Firestore → 컬렉션 시작 → test 만들고 문서 추가
2) 규칙 플레이그라운드로 읽기/쓰기 요청 테스트
3) (에뮬레이터 사용 시) 대시보드에서 문서 생성/로그 확인