Firebase Firestore 사용 설정 가이드

Firebase Firestore를 안드로이드 앱에서 사용하기 위해서는 Firebase 프로젝트 설정과 앱 내 Gradle 설정이 필요합니다. 이 가이드는 Firebase 프로젝트 레벨에서 설정해야 할 주요 사항들을 설명합니다.


1. Firebase 프로젝트 생성 및 앱 등록

Firebase Console에 접속하여 새로운 프로젝트를 만들거나 기존 프로젝트를 선택한 후, 안드로이드 앱을 등록합니다.

  1. Firebase Console 접속: Firebase Console에 접속하여 새로운 프로젝트를 만들거나 기존 프로젝트를 선택합니다.
  2. Android 앱 추가: 프로젝트에 안드로이드 앱을 추가합니다. 이 과정에서 google-services.json 파일을 다운로드하여 안드로이드 프로젝트의 app 모듈 디렉터리에 넣어야 합니다. 이 파일에는 앱이 Firebase와 통신하는 데 필요한 구성 정보가 포함되어 있습니다.

2. Firestore 데이터베이스 생성

Firebase 프로젝트 내에서 Firestore 데이터베이스를 생성하고 초기 보안 규칙을 설정합니다.

  1. Firestore 데이터베이스로 이동: Firebase Console에서 좌측 메뉴의 Build > Firestore Database로 이동합니다.
  2. 데이터베이스 만들기: 데이터베이스 만들기 버튼을 클릭합니다.
  3. 보안 규칙 선택: 다음 두 가지 모드 중 하나를 선택할 수 있습니다.
    • 프로덕션 모드 시작 (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} 경로에 공개 데이터를 저장할 수 있도록 보안 규칙을 설정합니다.

  1. Rules 탭으로 이동: Firebase Console의 Firestore Database 섹션에서 Rules 탭으로 이동합니다.
  2. 보안 규칙 작성: 다음 코드 스니펫과 같이 보안 규칙을 설정합니다.
    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 공급자를 사용 설정해야 합니다.

  1. Authentication으로 이동: Firebase Console에서 좌측 메뉴의 Build > Authentication으로 이동합니다.
  2. Sign-in method 탭으로 이동: 시작하기를 클릭하고 Sign-in method 탭으로 이동합니다.
  3. Anonymous 공급자 사용 설정: Anonymous 공급자를 사용 설정해야 합니다.

이러한 설정들을 Firebase 프로젝트에 적용하면 앱에서 Firestore 데이터베이스를 원활하게 사용할 수 있습니다.