Firebase Summit에서 발표된 모든 내용을 살펴보고 Firebase로 앱을 빠르게 개발하고 안심하고 앱을 실행하는 방법을 알아보세요. 자세히 알아보기

로컬에서 기능 실행

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

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

  • HTTPS 기능
  • 호출 가능한 함수
  • Firebase 인증, 실시간 데이터베이스, Cloud Firestore, Cloud Storage 및 Cloud Pub/Sub에서 트리거되는 백그라운드 기능.

프로덕션에 배포하기 전에 기능을 로컬에서 실행하여 테스트할 수 있습니다.

Firebase CLI 설치

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

npm install -g firebase-tools

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

  • firebase-admin 버전 8.0.0 이상.
  • firebase-functions 버전 3.0.0 이상.

관리자 자격 증명 설정(선택 사항)

기능 테스트가 Firebase Admin SDK 를 통해 Google API 또는 기타 Firebase API와 상호작용하도록 하려면 관리자 자격 증명을 설정해야 할 수 있습니다.

  • Cloud Firestore 및 실시간 데이터베이스 트리거에는 이미 충분한 자격 증명이 있으며 추가 설정이 필요하지 않습니다 .
  • 인증 및 FCM과 같은 Firebase API 또는 Cloud Translation 또는 Cloud Speech와 같은 Google API를 비롯한 다른 모든 API에는 이 섹션에 설명된 설정 단계가 필요합니다. 이는 Cloud Functions 셸을 사용하든 firebase emulators:start 를 사용하든 상관없이 적용됩니다.

에뮬레이트된 기능에 대한 관리자 자격 증명을 설정하려면:

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

    유닉스

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

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

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

기능 구성 설정(선택 사항)

사용자 지정 기능 구성 변수를 사용하는 경우 먼저 명령을 실행하여 로컬 환경에서 사용자 지정 구성을 가져옵니다( functions 디렉토리 내에서 실행).

firebase functions:config:get > .runtimeconfig.json
# If using Windows PowerShell, replace the above with:
# firebase functions:config:get | ac .runtimeconfig.json

에뮬레이터 제품군 실행

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"

에뮬레이터와 통신하도록 앱 계측

에뮬레이터와 상호 작용하도록 앱을 계측하려면 몇 가지 추가 구성을 수행해야 할 수 있습니다.

호출 가능한 함수에 대해 앱 계측

프로토타입 및 테스트 활동에 호출 가능한 백엔드 함수 가 포함된 경우 다음과 같이 Firebase용 Cloud Functions 에뮬레이터와의 상호작용을 구성합니다.

기계적 인조 인간
// 10.0.2.2 is the special IP address to connect to the 'localhost' of
// the host computer from an Android emulator.
FirebaseFunctions functions = FirebaseFunctions.getInstance();
functions.useEmulator("10.0.2.2", 5001);
빠른
Functions.functions().useFunctionsEmulator(origin: "http://localhost:5001")

Web version 9

import { getApp } from "firebase/app";
import { getFunctions, connectFunctionsEmulator } from "firebase/functions";

const functions = getFunctions(getApp());
connectFunctionsEmulator(functions, "localhost", 5001);

Web version 8

firebase.functions().useEmulator("localhost", 5001);

HTTPS 기능 에뮬레이션을 위해 앱 계측

코드의 각 HTTPS 기능은 다음 URL 형식을 사용하여 로컬 에뮬레이터에서 제공됩니다.

http:// $HOST : $PORT / $PROJECT / $REGION / $NAME

예를 들어 기본 호스트 포트와 지역이 있는 간단한 helloWorld 함수는 다음 위치에서 제공됩니다.

https://localhost:5001/ $PROJECT /us-central1/helloWorld

백그라운드 트리거 함수 에뮬레이션을 위해 앱 계측

Cloud Functions 에뮬레이터는 다음 소스에서 백그라운드 트리거 함수를 지원합니다.

  • 실시간 데이터베이스 에뮬레이터
  • Cloud Firestore 에뮬레이터
  • 인증 에뮬레이터
  • 게시/구독 에뮬레이터

백그라운드 이벤트를 트리거하려면 에뮬레이터 제품군 UI를 사용하거나 플랫폼용 SDK를 사용하여 앱 또는 테스트 코드를 에뮬레이터에 연결하여 백엔드 리소스를 수정합니다.

Extensions에서 내보낸 사용자 지정 이벤트에 대한 테스트 처리기

Cloud Functions v2로 Firebase Extensions 맞춤 이벤트를 처리하기 위해 구현하는 함수의 경우 Cloud Functions 에뮬레이터는 Eventarc 에뮬레이터와 쌍을 이루어 Eventarc 트리거 를 지원합니다.

이벤트를 내보내는 확장에 대한 사용자 지정 이벤트 핸들러를 테스트하려면 Cloud Functions 및 Eventarc 에뮬레이터를 설치해야 합니다.

Cloud Functions 런타임은 Eventarc 에뮬레이터가 실행 중인 경우 현재 프로세스에서 EVENTARC_EMULATOR 환경 변수를 localhost:9299 로 설정합니다. Firebase Admin SDK는 EVENTARC_EMULATOR 환경 변수가 설정되면 Eventarc 에뮬레이터에 자동으로 연결됩니다. 로컬 에뮬레이터 제품군 구성 에서 설명한 대로 기본 포트를 수정할 수 있습니다.

환경 변수가 올바르게 구성되면 Firebase Admin SDK가 Eventarc 에뮬레이터에 이벤트를 자동으로 보냅니다. 차례로 Eventarc 에뮬레이터는 Cloud Functions 에뮬레이터를 다시 호출하여 등록된 핸들러를 트리거합니다.

핸들러 실행에 대한 자세한 내용은 Emulator Suite UI에서 Functions 로그를 확인할 수 있습니다.

다른 서비스와의 상호 작용

에뮬레이터 제품군에는 제품 간 상호 작용을 테스트할 수 있는 여러 에뮬레이터가 포함되어 있습니다.

클라우드 파이어스토어

Firebase Admin SDK를 사용하여 Cloud Firestore에 쓰는 기능이 있는 경우 이러한 쓰기는 실행 중인 경우 Cloud Firestore 에뮬레이터로 전송됩니다. 이러한 쓰기에 의해 추가 기능이 트리거되면 Cloud Functions 에뮬레이터에서 실행됩니다.

클라우드 스토리지

Firebase Admin SDK(버전 9.7.0 이상)를 사용하여 Cloud Storage에 쓰는 기능이 있는 경우 이러한 쓰기는 실행 중인 경우 Cloud Storage 에뮬레이터로 전송됩니다. 이러한 쓰기에 의해 추가 기능이 트리거되면 Cloud Functions 에뮬레이터에서 실행됩니다.

Firebase 인증

Firebase Admin SDK(버전 9.3.0 이상)를 사용하여 Firebase 인증에 쓰는 기능이 있는 경우 이러한 쓰기는 실행 중인 경우 인증 에뮬레이터로 전송됩니다. 이러한 쓰기에 의해 추가 기능이 트리거되면 Cloud Functions 에뮬레이터에서 실행됩니다.

Firebase 호스팅

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

벌채 반출

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

다음 단계

Firebase 에뮬레이터 제품군 사용에 대한 전체 예는 테스트 빠른 시작 샘플 을 참조하세요.