FireBase (FireStore) Emulator설치 및 적용

W·2024년 1월 17일
0

BackEnd & Devops

목록 보기
6/13

FireStore

Ref.
Cloud Firestore 청구 이해  |  Firebase


  • 쓰기 및 삭제 요금 : 각 set, update 작업은 쓰기 1회로 계산
  • 집계쿼리 : 건수 0 ~ 1000개당 1회. count()로 집계쿼리를 사용한 경우 그 결과값이 0개에서 1000개 까지는 횟수 1개 차감. 1500개 → 2회
  • 쿼리가 결과를 반환하지 않더라도 수행하는 쿼리마다 1회

Emulator 설치

1. CLI 설치하기

  • 터미널에서 아래 코드 입력
curl -sL https://firebase.tools | bash

2. 설치 후 로그인 하기

  • firebase 아이디, 비밀번호로 로그인
firebase login

3. Firebase 프로젝트 list 확인하기

  • list가 떠야 제대로 CLI 설치된 것.
firebase projects:list

CLI 버전 업데이트 하기 (생략가능)

curl -sL https://firebase.tools | upgrade=true bash
  • 이때 토큰이 나오는데 따로 쓸곳은 없음. 알아서 처리하는 듯.

4. Firebase 프로젝트 초기화

  • 에뮬레이터를 설치할 해당 프로젝트 경로에 들어가서 커맨드하기
firebase init
  • 참고: firebase init 명령어를 실행해도 새 디렉터리가 생성되지 않습니다. 새 앱을 시작하는 경우 먼저 디렉터리를 만든 후 이 디렉터리 내에서 firebase init 명령어를 실행해야 합니다.
  • 새 폴더를 만들고 거기에 firebase init을 하라고 함.

초기화 작업 후 아래 두개에 해당하는 파일 생성됨.

firebase init 할때 꼭 스페이스바로 선택해서 엔터치기 !!

실행과정 중 하나

5. XCODE에 에뮬레이터 실행 로직 추가

  • AppDelegate 부분에 추가
class AppDelegate: NSObject, UIApplicationDelegate {
    func application(_ application: UIApplication,
                     didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
        
        FirebaseApp.configure()

	     /*-----------------------------------
            FireBase 에뮬레이터 사용시 주석 제거
         ----------------------------------*/
        //스토리지
        Storage.storage().useEmulator(withHost:"127.0.0.1", port:9199)
        
        //인증관련
        Auth.auth().useEmulator(withHost:"127.0.0.1", port:9099)
        
        //파이어스토어
        let settings = Firestore.firestore().settings
        settings.host = "127.0.0.1:8080"
        settings.isSSLEnabled = false
        Firestore.firestore().settings = settings

        
        return true
    }
    
    func application(_ app: UIApplication,
                     open url: URL,
                     options: [UIApplication.OpenURLOptionsKey: Any] = [:]) -> Bool {
        return GIDSignIn.sharedInstance.handle(url)
    }
    
}

자바 깔아달라고 하면

brew install --cask adoptopenjdk 혹은 brew install microisoftOpenJdk => ??

에뮬레이터 시작하기

firebase emulators:start

실행중인 에뮬레이터들 목록 보기

curl localhost:4400/emulators

FireStore 에뮬레이터의 데이터를 내보내기 (백업)

firebase emulators:export seed

실서버 데이터 에뮬레이터로 가져오기

firebase emulators:import seed

Auth 에뮬레이터 실행시 정보가져오기

firebase emulators:start --import data --export-on-exit

FireStore 보안규칙 없애기

match /경로/{anything=**}

FireStore 설정에 들어가서 적용.
profile
타협하는 순간 발전이 없어

0개의 댓글