Firebase 프로젝트에 확장 프로그램을 설치 및 구성하고 나면 이 구성을 저장해 다른 프로젝트에 배포할 수 있습니다. 저장된 구성에는 각 인스턴스의 버전과 설치 시 지정한 매개변수 값을 비롯하여 설치한 모든 확장 프로그램 인스턴스에 대한 정보가 있습니다.
다음은 몇 가지 사용 예입니다.
- 프로젝트의 확장 프로그램 구성을 다른 프로젝트에서 다시 생성
- 확장 프로그램 구성을 다른 사용자와 공유
- 소스 제어에 확장 프로그램 구성 커밋
- CI/CD 파이프라인에 확장 프로그램 추가
프로젝트의 확장 프로그램 구성 저장
프로젝트의 확장 프로그램 구성을 저장하려면 다음 단계를 따르세요.
- 아직 Firebase CLI를 설정하지 않았다면 설정합니다.
- 셸 프롬프트에서 프로젝트 디렉터리로 변경합니다. (프로젝트 디렉터리에는
firebase.json
파일이 포함되어 있습니다.) ext:export
명령어를 실행합니다.firebase ext:export –-project=YOUR_PROJECT_ID
ext:export
명령어는 firebase.json
파일에 extensions
섹션을 추가합니다. 예를 들면 다음과 같습니다.
{
"extensions": {
"my-bigquery-extension": "firebase/firestore-bigquery-export@^0.1.18",
"my-image-resizer": "firebase/storage-resize-images@^0.1.22",
}
}
또한 ext:export
명령어는 설치한 각 확장 프로그램 인스턴스에 .env
파일을 포함하는 extensions
디렉터리를 생성합니다. 이러한 파일에는 각 인스턴스의 구성 매개변수가 포함됩니다. 예를 들어 storage-resize-images
의 인스턴스에는 다음과 같은 .env
파일이 있을 수 있습니다.
IMAGE_TYPE=jpeg LOCATION=us-central1 IMG_BUCKET=${param:PROJECT_ID}.appspot.com IMG_SIZES=100x100 DELETE_ORIGINAL_FILE=false
프로젝트에 확장 프로그램 구성 배포
프로젝트의 확장 프로그램 구성을 저장하고 나면 Firebase CLI를 사용하여 프로젝트에 배포할 수 있습니다. 확장 프로그램 구성을 배포할 때는 저장된 구성의 모든 확장 프로그램 인스턴스를 프로젝트에 일제히 설치, 업데이트, 구성합니다.
확장 프로그램 구성을 배포하려면 다음 안내를 따르세요.
- 셸 프롬프트에서 저장된 확장 프로그램 구성이 포함된 디렉터리로 변경합니다. 이 디렉터리는
firebase.json
을 포함하고 있습니다.ext:export
를 실행했다면 이미 올바른 디렉터리에 있는 것입니다.) deploy
명령어를 실행하여 확장 프로그램을 배포할 프로젝트를 지정합니다.firebase deploy --only extensions –-project=YOUR_PROJECT_ID
deploy
명령어는 각 인스턴스 구성의 유효성을 검사하고 firebase.json
에 나열되지 않는 대상 프로젝트에서 확장 프로그램 인스턴스를 삭제할 것인지 확인한 다음 모든 확장 프로그램 인스턴스를 배포합니다.
프로젝트별 확장 프로그램 구성
저장된 확장 프로그램 구성을 사용하여 스테이징 프로젝트, 프로덕션 프로젝트 등 각기 다른 여러 프로젝트에 배포할 수 있습니다. 이 작업을 수행할 때 몇 가지 매개변수는 프로젝트별로 값을 다르게 설정해야 할 수 있습니다. 프로젝트별 .env 파일을 사용하면 이러한 설정이 가능합니다. 프로젝트별로 서로 다른 매개변수 값은 extensions/${extensionInstanceId}.env.${projectIdOrAlias}에 입력하고 공유 매개변수 값은 extensions/${extensionInstanceId}.env에 입력할 수 있습니다.