Firebase Firestore를 안드로이드 앱에서 사용하기 위해서는 Firebase 프로젝트 설정과 앱 내 Gradle 설정이 필요합니다. 이 가이드는 Firebase 프로젝트 레벨에서 설정해야 할 주요 사항들을 설명합니다.
1. Firebase 프로젝트 생성 및 앱 등록
Firebase Console에 접속하여 새로운 프로젝트를 만들거나 기존 프로젝트를 선택한 후, 안드로이드 앱을 등록합니다.
- Firebase Console 접속: Firebase Console에 접속하여 새로운 프로젝트를 만들거나 기존 프로젝트를 선택합니다.
- Android 앱 추가: 프로젝트에 안드로이드 앱을 추가합니다. 이 과정에서
google-services.json
파일을 다운로드하여 안드로이드 프로젝트의app
모듈 디렉터리에 넣어야 합니다. 이 파일에는 앱이 Firebase와 통신하는 데 필요한 구성 정보가 포함되어 있습니다.
2. Firestore 데이터베이스 생성
Firebase 프로젝트 내에서 Firestore 데이터베이스를 생성하고 초기 보안 규칙을 설정합니다.
- Firestore 데이터베이스로 이동: Firebase Console에서 좌측 메뉴의 Build > Firestore Database로 이동합니다.
- 데이터베이스 만들기: 데이터베이스 만들기 버튼을 클릭합니다.
- 보안 규칙 선택: 다음 두 가지 모드 중 하나를 선택할 수 있습니다.
- 프로덕션 모드 시작 (Start in production mode): 이 모드는 기본적으로 데이터 읽기/쓰기를 거부하므로, 실제 서비스 시에는 Firestore 보안 규칙을 신중하게 설정해야 합니다.
- 테스트 모드 시작 (Start in test mode): 이 모드는 개발 초기 단계에서 빠르게 데이터를 읽고 쓸 수 있도록 모든 클라이언트의 읽기/쓰기를 허용합니다. 그러나 이 모드는 모든 사용자에게 데이터가 공개되므로, 프로덕션 환경에서는 절대 사용하면 안 됩니다.
현재 코드에서는 익명 인증을 사용하고 Firestore 보안 규칙에서
request.auth != null
조건을 사용하므로, 데이터 쓰기/읽기를 허용하는 규칙을 설정해야 합니다.
3. Firestore 보안 규칙 설정
앱이 artifacts/{appId}/users/{userId}/{your_collection_name}
경로에 사용자별 데이터를 저장하고 artifacts/{appId}/public/data/{your_collection_name}
경로에 공개 데이터를 저장할 수 있도록 보안 규칙을 설정합니다.
- Rules 탭으로 이동: Firebase Console의 Firestore Database 섹션에서 Rules 탭으로 이동합니다.
- 보안 규칙 작성: 다음 코드 스니펫과 같이 보안 규칙을 설정합니다.
rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { // Private data (user-specific) match /artifacts/{appId}/users/{userId}/{document=**} { allow read, write: if request.auth != null && request.auth.uid == userId; } // Public data (shared among authenticated users) match /artifacts/{appId}/public/data/{collection}/{document=**} { allow read, write: if request.auth != null; } } }
이 규칙은 인증된 사용자(익명 사용자 포함)가 자신의 데이터에만 읽기/쓰기 권한을 가지거나 (private data), 인증된 모든 사용자가 공유 데이터에 읽기/쓰기 권한을 가지도록 설정합니다.
4. Firebase 인증 (Authentication) 설정
앱에서 익명 인증을 사용하므로, Firebase Authentication에서 Anonymous 공급자를 사용 설정해야 합니다.
- Authentication으로 이동: Firebase Console에서 좌측 메뉴의 Build > Authentication으로 이동합니다.
- Sign-in method 탭으로 이동: 시작하기를 클릭하고 Sign-in method 탭으로 이동합니다.
- Anonymous 공급자 사용 설정: Anonymous 공급자를 사용 설정해야 합니다.
이러한 설정들을 Firebase 프로젝트에 적용하면 앱에서 Firestore 데이터베이스를 원활하게 사용할 수 있습니다.