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

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

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

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

  • 각 사이트에는 자체 호스팅 구성 이 있습니다.
  • 각 사이트는 자체 콘텐츠 컬렉션을 호스팅합니다.
  • 각 사이트에는 하나 이상의 연결된 도메인 이 있을 수 있습니다.

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

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

최신 버전의 Firebase CLI로 업데이트하여 최신 Firebase 호스팅 기능에 액세스하세요.

2단계 : 사이트 추가

다음 방법 중 하나를 사용하여 Firebase 프로젝트에 사이트를 추가합니다.

이러한 각 방법에 대해 사이트에 대해 Firebase에서 프로비저닝한 기본 하위 도메인을 구성하는 데 사용되는 SITE_ID 를 지정합니다.

  • SITE_ID .web.app
  • SITE_ID .firebaseapp.com

이러한 URL에 SITE_ID 가 사용되기 때문에 사이트 ID에는 다음 요구 사항이 있습니다.

  • 을 포함할 수 없음을 의미하는 유효한 호스트 이름 레이블이어야 합니다 . , _
  • 30자 이하여야 합니다.
  • Firebase 내에서 전역적으로 고유해야 합니다.

각 사이트에 선택적으로 사용자 지정 도메인을 추가 하여 동일한 콘텐츠 및 구성을 여러 URL에 제공할 수도 있습니다.

보조 사이트 삭제

다음 방법 중 하나를 사용하여 Firebase 프로젝트에서 원치 않는 사이트를 삭제합니다.

Firebase 프로젝트 ID와 SITE_ID 가 동일한 기본 사이트는 삭제할 수 없습니다.

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

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

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

firebase target:apply hosting TARGET_NAME RESOURCE_IDENTIFIER

매개변수는 다음과 같습니다.

  • TARGET_NAME — 배포할 호스팅 사이트의 고유한 이름(직접 정의)

  • RESOURCE_IDENTIFIERFirebase 프로젝트에 나열된 호스팅 사이트의 SITE_ID

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

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

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

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

firebase.json 파일에서 호스팅 구성을 정의할 때 사이트에 적용된 TARGET_NAME 을 사용하세요.

  • 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 emulators:start --only hosting 로컬로 호스팅되는 URL에서 기본 호스팅 사이트의 호스팅 콘텐츠 및 구성을 에뮬레이트합니다.
firebase emulators:start --only hosting: TARGET_NAME 로컬로 호스팅된 URL에서 지정된 호스팅 사이트의 호스팅 콘텐츠 및 구성을 에뮬레이트합니다.
firebase hosting:channel:deploy \
CHANNEL_ID
미리보기 URL에서 기본 호스팅 사이트의 호스팅 콘텐츠 및 구성을 배포합니다.
firebase hosting:channel:deploy \
CHANNEL_ID --only TARGET_NAME
미리보기 URL에서 지정된 호스팅 사이트의 호스팅 콘텐츠 및 구성을 배포합니다.
firebase deploy --only hosting firebase.json 에 구성된 모든 호스팅 사이트의 라이브 채널에 호스팅 콘텐츠 및 구성을 배포합니다.
firebase deploy --only hosting: TARGET_NAME 지정된 호스팅 사이트의 라이브 채널에 호스팅 콘텐츠 및 구성을 배포합니다.
명령 설명
(권장하지 않음, 대신 emulators:start )
firebase serve --only hosting
로컬로 호스팅되는 URL에서 기본 호스팅 사이트의 호스팅 콘텐츠 및 구성을 제공합니다.
(권장하지 않음, 대신 emulators:start )
firebase serve --only hosting: TARGET_NAME
로컬로 호스팅된 URL에서 지정된 호스팅 사이트의 호스팅 콘텐츠 및 구성을 제공합니다.