콘솔로 이동

로컬에서 함수 실행

Firebase CLI에는 다음 함수 유형을 에뮬레이션할 수 있는 Cloud Functions가 포함되어 있습니다.

  • HTTPS 함수
  • 호출 가능 함수
  • Cloud Firestore 함수

함수를 프로덕션 단계로 배포하기 전에 로컬에서 테스트 실행이 가능합니다.

Firebase CLI 설치

Cloud Functions 에뮬레이터를 사용하려면 먼저 Firebase CLI를 설치하세요.

npm install -g firebase-tools

로컬 에뮬레이터를 사용하려면 Cloud Functions에서 다음을 사용해야 합니다.

  • firebase-admin 버전 7.0.0 이상
  • firebase-functions 버전 2.0.0 이상

관리자 인증 정보 설정(선택사항)

Firebase Admin SDK를 통해 함수가 Google API 및 다른 Firebase API와 상호작용하는지 테스트하기 위해서는 관리자 인증 정보를 설정해야 할 수도 있습니다.

  • Cloud Firestore 및 실시간 데이터베이스 트리거의 사용자 인증 정보가 이미 충분한 경우에는 추가 설정이 필요 없습니다.
  • Firebase API(예: Authentication API, FCM API) 또는 Google API(예: Cloud Translation API, Cloud Speech API)를 포함한 기타 모든 API에는 이 섹션에 설명된 설정 단계가 필요합니다. 함수 셸을 사용하든 firebase serve를 사용하든 상관없이 적용되는 사항입니다.

에뮬레이션된 함수에 관리자 인증 정보를 설정하는 방법:

  1. Google Cloud Console의 서비스 계정 창을 엽니다.
  2. App Engine 기본 서비스 계정이 선택되어 있는지 확인하고 오른쪽에 있는 옵션 메뉴에서 키 만들기를 선택합니다.
  3. 메시지가 나타나면 키 유형으로 JSON을 선택하고 만들기를 클릭합니다.
  4. Google 기본 사용자 인증 정보가 다운로드된 키를 가리키도록 설정합니다.

    Unix

    $ export GOOGLE_APPLICATION_CREDENTIALS="path/to/key.json"
    
    $ firebase emulators:start
    

    Windows

    $ set GOOGLE_APPLICATION_CREDENTIALS=path\to\key.json
    
    $ firebase emulators:start
    

이 단계를 완료하면 함수 테스트에서 Admin SDK를 사용하여 Firebase 및 Google API에 액세스할 수 있습니다. 예를 들어 인증 트리거를 테스트하는 경우 에뮬레이션된 함수에서 admin.auth().getUserByEmail(email)을 호출할 수 있습니다.

에뮬레이터 도구 모음 실행

Cloud Functions 에뮬레이터를 실행하려면 emulators:start 명령어를 사용하세요.

firebase emulators:start

emulators:start 명령어를 실행하면 firebase init를 사용하여 로컬 프로젝트에서 초기화한 제품에 따라 Cloud Functions, Cloud Firestore, 실시간 데이터베이스, Firebase 호스팅용 에뮬레이터가 시작됩니다. 특정 에뮬레이터를 시작하려면 --only 플래그를 사용하세요.

firebase emulators:start --only functions

에뮬레이션이 시작된 후 테스트 모음 또는 테스트 스크립트를 실행하려면 emulators:exec 명령어를 사용합니다.

firebase emulators:exec "./my-test.sh"

다른 서비스와 상호작용

에뮬레이터 도구 모음에는 크로스 프로덕트 상호 작용의 테스트가 가능한 여러 에뮬레이터가 포함되어 있습니다.

Cloud Firestore

Cloud Firestore에 작성하기 위해 Firebase Admin SDK를 사용하는 Cloud Functions에서의 쓰기 작업은 실행 중인 Cloud Firestore 에뮬레이터로 전달됩니다. 쓰기 작업을 통해 추가로 트리거된 Cloud Functions는 Cloud Functions 에뮬레이터에서 실행됩니다.

Firebase 호스팅

Firebase 호스팅용 동적 콘텐츠를 생성하는 Cloud Functions를 사용 중인 경우 firebase emulators:start는 호스팅용 프록시로 로컬 HTTP 함수를 사용합니다.

로깅

에뮬레이터는 함수의 로그를 실행 중인 터미널 창으로 스트리밍합니다. 또한 함수에 포함된 console.log(), console.info(), console.error(), console.warn() 문의 모든 출력을 표시합니다.

다음 단계

Firebase 에뮬레이터 도구 모음 사용에 관한 모든 예시는 빠른 시작 샘플을 참조하세요.