콘솔로 이동

여러 사이트에서 프로젝트 리소스 공유

각 Firebase 프로젝트에 하나 이상의 Firebase 호스팅 사이트를 설정할 수 있습니다. 사이트가 모두 같은 Firebase 프로젝트에 있으므로 모든 사이트에서 프로젝트의 다른 Firebase 리소스에 액세스할 수 있습니다.

  • 각 사이트에는 고유한 호스팅 구성이 있습니다.
  • 각 사이트는 고유한 콘텐츠 모음을 호스팅합니다.
  • 각 사이트는 연결된 도메인을 하나 이상 포함할 수 있습니다.

같은 Firebase 프로젝트 내에서 여러 호스팅 사이트를 설정하여 관련 사이트 및 앱 사이에 Firebase 리소스를 보다 쉽게 공유할 수 있습니다. 예를 들어 블로그, 관리 패널, 공개 앱을 동일한 Firebase 프로젝트에 개별 사이트로 설정한 경우 이러한 사이트 및 앱은 고유한 자체 도메인 또는 콘텐츠를 보유하면서도 모두 같은 Firebase 인증 사용자 데이터베이스를 공유할 수 있습니다.

1단계: Firebase CLI 버전 업데이트

최신 Firebase 호스팅 기능을 이용 중인지 확인합니다. 터미널에서 다음 명령어를 실행해 최신 Firebase CLI 버전으로 업데이트합니다.

npm install -g firebase-tools

2단계: 사이트 더 추가

Firebase 호스팅 페이지에서 직접 Firebase 프로젝트에 사이트를 더 추가합니다. 각 사이트에 선택적으로 맞춤 도메인을 추가하여 여러 URL에 같은 콘텐츠 및 구성을 제공할 수도 있습니다.

보조 사이트 삭제

Firebase 호스팅 페이지에서 직접 원하지 않는 사이트를 삭제합니다. Firebase 프로젝트 ID와 이름이 같은 기본 사이트는 삭제할 수 없습니다.

3단계: 사이트 배포 대상 설정

사이트가 여러 개 있고 Firebase CLI 배포 명령어를 실행하는 경우 CLI에는 각 사이트에 배포해야 하는 설정을 전달하는 방법이 필요합니다. 배포 대상을 사용하면 테스트 또는 사이트에 배포하기 위한 firebase.json 구성 파일Firebase CLI 명령어에서 대상 이름으로 특정 사이트를 고유하게 식별할 수 있습니다.

배포 대상을 만들고 대상 이름을 호스팅 사이트에 적용하려면 프로젝트 디렉토리의 루트에서 다음 CLI 명령어를 실행합니다.

firebase target:apply hosting target-name resource-name

여기에서 매개변수는 다음과 같습니다.

  • target-name — 배포할 호스팅 사이트의 고유 식별자(사용자가 직접 정의)

  • resource-nameFirebase 프로젝트에 나열된 호스팅 사이트의 이름

예를 들어 Firebase 프로젝트에 두 사이트(myapp-blog, myapp-app)를 만든 경우 다음 명령어를 실행하여 각 사이트에 고유한 대상 이름(각각 blog, app)을 적용할 수 있습니다.

firebase target:apply hosting blog myapp-blog
firebase target:apply hosting app myapp-app

배포 대상 설정은 프로젝트 디렉토리의 .firebaserc 파일에 저장되므로 프로젝트당 배포 대상을 한 번만 설정하면 됩니다.

4단계: 각 사이트의 호스팅 구성 정의

firebase.json 파일에서 호스팅 구성을 정의할 때 사이트의 적용된 대상 이름을 사용합니다.

  • firebase.json 파일에 여러 사이트의 구성이 정의되어 있으면 배열 형식을 사용합니다.

    {
      "hosting": [ {
          "target": "blog",  // "blog" is the applied target name for the Hosting site "myapp-blog"
          "public": "blog/dist",  // contents of this folder are deployed to the site "myapp-blog"
    
          // ...
        },
        {
          "target": "app",  // "app" is the applied target name for the Hosting site "myapp-app"
          "public": "app/dist",  // contents of this folder are deployed to the site "myapp-app"
    
          // ...
    
          "rewrites": [...]  // You can define specific Hosting configurations for each site
        }
      ]
    }
    
  • firebase.json 파일에 한 사이트의 구성만 정의되어 있으면 배열 형식을 사용할 필요가 없습니다.

    {
      "hosting": {
          "target": "blog",
          "public": "dist",
    
          // ...
    
          "rewrites": [...]
      }
    }
    

5단계: 사이트에 배포 또는 로컬에서 제공

프로젝트 디렉토리의 루트에서 다음 명령어 중 하나를 실행합니다.

명령 설명
firebase deploy 프로젝트 디렉토리에서 배포 가능한 모든 리소스의 출시 버전을 만듭니다.
firebase deploy --only hosting:target-name 지정된 호스팅 대상의 리소스만 출시 버전으로 만듭니다.
firebase serve Firebase 프로젝트를 로컬에서 제공합니다.
firebase serve --only hosting:target-name 지정된 호스팅 대상의 리소스만 로컬에서 제공합니다.