複数のサイトでプロジェクトのリソースを共有する

1 つの Firebase プロジェクトで 1 つ以上の Firebase Hosting サイトを設定できます。各サイトは、静的アセットの独自のコレクションをホストし、独自のホスティング構成を持ちます。また、各サイトには 1 つ以上のドメインを関連付けることができます。各サイトはすべて同じ Firebase プロジェクト内に存在するため、すべてのサイトはプロジェクトの他の Firebase リソースにアクセスできます。

同一の Firebase プロジェクト内に複数の Hosting サイトを定義すると、関連サイトとアプリの間で Firebase リソースをより簡単に共有できます。たとえば、ブログ、管理パネル、公開アプリがすべて同じ Firebase プロジェクト内のサイトとして設定されている場合、それらすべては同じ Firebase Auth ユーザー データベースを共有でき、その一方で独自のドメインや静的アセットも所有できます。

サイトを追加する

Firebase プロジェクトへのサイトの追加は、Firebase Hosting ページから直接行います。各サイトには、オプションでカスタム ドメインを追加して、同じコンテンツと構成を複数の URL で提供することもできます。

セカンダリ サイトを削除する

不要なサイトの削除は、Firebase Hosting ページから直接行います。Firebase プロジェクトと名前が同じであるデフォルト サイトは削除できないことに注意してください。

サイトのデプロイ ターゲットを設定する

複数のサイトを使用しており、Firebase CLI のデプロイ コマンドを実行する場合、CLI には、各サイトにどの設定をデプロイするかを伝達する手段が必要です。デプロイ ターゲットを使用すると、firebase.json 構成ファイル内または Firebase CLI コマンド内の target-name により、特定のサイトを一意に識別できます。

デプロイ ターゲットを作成し、target-name を Hosting サイトに適用するには、プロジェクト ディレクトリのルートから次の CLI コマンドを実行します。

firebase target:apply hosting target-name resource-name

パラメータは次のとおりです。

  • target-name: デプロイ先である Hosting サイトの(自身で定義した)一意の識別子

  • resource-name: Firebase プロジェクトのサイト一覧で表示される Hosting サイトの名前

たとえば、Firebase プロジェクトで 2 つのサイト(myapp-blogmyapp-app)を作成した場合は、次のコマンドを実行すると、各サイトに一意の target-name(それぞれ blogapp)を適用できます。

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

デプロイ ターゲットの設定はプロジェクト ディレクトリの .firebaserc ファイルに保存されるため、デプロイ ターゲットを設定する必要があるのはプロジェクトごとに 1 回だけです。

各サイトのホスティング構成を定義する

firebase.json ファイルでサイトのホスティング構成を定義する際には、サイトの target-name を使用します。

  • firebase.json ファイルで複数のサイトの構成を定義する場合は、次の配列形式を使用します。

    {
      "hosting": [ {
          "target": "blog", // "blog" is the applied target-name for the Hosting site myapp-blog.
          "public": "blog/dist"
        },
        {
          "target": "app", // "app" is the applied target-name for the Hosting site myapp-app.
          "public": "app/dist",
          "rewrites": [...] // You can define specific hosting configurations for each site.
        }
      ]
    }
    
  • firebase.json ファイルで 1 つのサイトのみの構成を定義する場合は、配列形式を使用する必要はありません。

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

サイトにデプロイする、またはローカルでサービス提供する

プロジェクト ディレクトリのルートから、次のいずれかのコマンドを実行します。

コマンド 説明
firebase deploy プロジェクト ディレクトリにデプロイできるすべてのリソースのリリースを作成します
firebase deploy --only hosting:target-name 指定した Hosting ターゲットのリソースのみのリリースを作成します
firebase serve Firebase プロジェクトをローカルでサービス提供します
firebase serve --only hosting:target-name 指定した Hosting ターゲットのリソースのみをローカルでサービス提供します

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。