2022 年 10 月 18 日に開催される Firebase Summit に、直接会場で、またはオンラインでご参加ください。Firebase を使用してアプリ開発を加速させ、自信を持ってアプリをリリースし、簡単にスケールする方法をご紹介します。 今すぐ申し込む

サイトのライブおよびプレビューチャネル、リリース、バージョンを管理します

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

Firebase Hostingは、FirebaseコンソールとFirebase CLIの両方を介して、ホスティングサイトのチャネル、リリース、バージョンを管理するためのツールを提供します。

ホスティングインフラストラクチャの概要

ホスティングインフラストラクチャを理解すると、このページで説明されている管理オプションを理解するのに役立ちます。

すべてのFirebaseプロジェクトには、プロジェクトのすべてのリソース(データベース、認証、機能など)にアクセスできるデフォルトのホスティングサイトがあります。サイトには1つ以上のチャネルが含まれ、各チャネルは特定のコンテンツとホスティング構成を提供するURLに関連付けられています。

FirebaseHosting階層の画像

すべてのホスティングサイトには、(1)サイトのFirebaseでプロビジョニングされたサブドメイン( SITE_ID .web.appSITE_ID .firebaseapp.com )および(2)接続されたカスタムドメインでコンテンツとホスティング構成を提供する「ライブ」チャネルがあります。オプションで、一時的な共有可能な「プレビューURL」( SITE_ID -- CHANNEL_ID - RANDOM_HASH .web.app )で独自のコンテンツと構成を提供する「プレビュー」チャネルを作成することもできます。

各チャネルによって提供されるコンテンツと構成は、一意の識別子を持つバージョンオブジェクトにパッケージ化されます。サイトにデプロイすると、Firebaseは特定のバージョンを指すリリースオブジェクトを作成します。リリースには、誰が展開したか、いつ展開したかなど、展開に関するメタデータが含まれています。

Firebaseプロジェクトのホスティングダッシュボードから、リリース履歴テーブルでライブチャンネルのリリースの完全な履歴を確認できます。複数のホスティングサイトがある場合は、目的のサイトの[表示]をクリックして、リリース履歴を確認します。プレビューチャネルがある場合は、ホスティングダッシュボードにも表示されます。

チャネルの設定を管理する

サイトのチャネルごとに、その設定を制御できます。チャネルの有効期限などの一部の設定は、プレビューチャネルにのみ適用できます。

保持するリリースの数を制限する

チャネルにデプロイする(およびリリースを作成する)たびに、ホスティングは以前のリリースに関連付けられたバージョンをプロジェクトのホスティングストレージに保持します。ライブチャンネルとプレビューチャンネルの両方で、プロジェクトの各チャンネルに保持するリリース数を設定できます。

  • ホスティングが以前のリリースを保持するのはなぜですか?
    ライブチャンネルの場合、以前のリリースを保持すると、必要に応じてサイトの以前のバージョンにロールバックできます。プレビューチャンネルの場合、ロールバックはまだ利用できません。

  • 保持するリリースの数を制限するのはなぜですか?
    以前のリリースのコンテンツはこのストレージに保持されるため、この機能は、プロジェクトのホスティングストレージの使用レベルを制御するのに役立ちます。コンソールの[ストレージ]タブからホスティングストレージを監視できます。

  • 保持するリリースを制限するとどうなりますか?
    保持するリリースの制限を設定すると、設定した制限を超えるリリースのコンテンツは、最も古いリリースから順に削除されるようにスケジュールされます。

チャネルのリリースストレージ制限を設定する方法は次のとおりです。

  1. Firebaseコンソールで、リリースストレージ設定ダイアログにアクセスします。

    • あなたのライブチャンネルのために
      サイトの[リリース履歴]テーブルで、[ ]をクリックし、[ストレージ設定のリリース]を選択します。

    • プレビューチャンネルの場合
      プレビューチャネルの行で、 をクリックし、[チャネル設定]を選択します。

  2. 保持するリリースの数を入力し、[保存]をクリックします。

プレビューチャネルの有効期限を設定します

デフォルトでは、プレビューチャネルは作成日から7日で有効期限が切れますが、サイトのライブチャネルが期限切れになることはありません。

プレビューチャネルの有効期限が切れると、チャネルは、そのリリースおよび関連するバージョンとともに、24時間以内に削除されるようにスケジュールされます。関連するプレビューURLも非アクティブ化されます。このバージョン削除の例外は、バージョンが別のリリースに関連付けられている場合です(これは、たとえば、同じサイト内のあるチャネルから別のチャネルにバージョンを複製した場合に発生します)。

ホスティングは、チャネルの有効期限を制御するための2つの異なる方法をサポートしています。

  • Firebaseコンソール
    プレビューチャネルの行で、 をクリックし、[チャネル設定]を選択します。有効期限の日時を入力します。

  • FirebaseCLI
    プレビューチャネルにデプロイするときは、次のように--expires DURATIONフラグを渡します。

    firebase hosting:channel:deploy new-awesome-feature --expires 7d

    有効期限は、デプロイ日から最大30日です。 hを時間、 dを日、 wを週に使用します(たとえば、それぞれ12h7d2w )。

あるチャネルから別のチャネルにバージョンを複製する

デプロイされたバージョンをあるチャネルから別のチャネルに複製できます。ライブチャンネルやプレビューチャンネル、ホスティングサイト、さらにはFirebaseプロジェクト間でクローンを作成できます。

cloneコマンドは「ターゲット」チャネルにもデプロイされるため、複製されたホスティングコンテンツと構成は「ターゲット」チャネルの関連付けられたURLで自動的に提供されます。

この機能は、バージョントラッキングに役立ちます。または、別のチャネルで表示またはテストした正確なコンテンツを展開していることを確認したい場合に役立ちます。ここではいくつかの例を示します。

  • 「QA」プレビューチャネルからサイトのライブチャネルに複製します(ライブになります!)

  • サイトのライブチャネルから「デバッグ」プレビューチャネルにクローンを作成します(ロールバック前など)

  • 「ステージング」Firebaseプロジェクトのチャンネルから「本番」Firebaseプロジェクトのプレビューチャンネルにクローンを作成します

バージョンのクローンを作成するには、任意のディレクトリから次のコマンドを実行します。

firebase hosting:clone SOURCE_SITE_ID:SOURCE_CHANNEL_ID TARGET_SITE_ID:TARGET_CHANNEL_ID

各プレースホルダーを次のように置き換えます。

  • SOURCE_SITE_IDおよびTARGET_SITE_ID :これらはチャネルを含むホスティングサイトのIDです。

    • デフォルトのホスティングサイトには、FirebaseプロジェクトIDを使用します。
    • 同じFirebaseプロジェクトまたは異なるFirebaseプロジェクトにあるホスティングサイトを指定できます。
  • SOURCE_CHANNEL_IDおよびTARGET_CHANNEL_ID :これらはチャネルの識別子です。

    • ライブチャネルの場合、チャネルIDとしてliveを使用します。
    • 指定された「ターゲット」チャネルがまだ存在しない場合、このコマンドは、チャネルにデプロイする前にチャネルを作成します。

以前のバージョンのサイトにロールバックします

ロールバックして、サイトのライブチャネルの以前のバージョンを提供できます。このアクションは、現在のリリースに問題があり、ロールバックしてサイトの既知の動作バージョンを提供する場合に役立ちます。または、おそらくあなたのサイトは休日や特別なイベントのために一時的なコンテンツを提供しましたが、今あなたはあなたの「通常の」コンテンツを提供するためにロールバックしたいと思っています。

ロールバックすることにより、以前のリリースと同じバージョンのコンテンツを提供する新しいリリースを作成します。リリース履歴テーブルでは、両方のリリースに同じバージョン識別子がリストされます。

ロールバックする方法は次のとおりです。

  1. Firebaseコンソールのサイトの[リリース履歴]テーブルで、ロールバックする前のリリースエントリにカーソルを合わせます。

  2. をクリックし、[ロールバック]を選択します。

リリースを手動で削除する

プロジェクトのホスティングストレージを解放するために、ライブチャネルからリリースを手動で削除する必要がある場合があります。削除できるのは以前のリリースのみで、現在ライブサイトで提供されているリリースは削除できません。

リリースを削除すると、実際にはそのコンテンツが削除されます。これは24時間以内に削除される予定です。リリースオブジェクト自体は保持されているため、メタデータ(誰がいつデプロイしたか)を引き続き確認できます。

リリースを削除する方法は次のとおりです。

  1. Firebaseコンソールのサイトの[リリース履歴]テーブルで、削除する前のリリースエントリにカーソルを合わせます。

  2. をクリックし、[削除]を選択します。

プレビューチャネルを手動で削除する

プレビューチャネルを削除することはできますが、サイトのライブチャネルを削除することはできません。

プレビューチャネルを削除すると、そのチャネルとそのリリースおよび関連するバージョンは、24時間以内に削除されるようにスケジュールされます。関連するプレビューURLも非アクティブ化されます。バージョン削除の例外は、バージョンが別のリリースに関連付けられている場合です(これは、たとえば、同じサイト内のあるチャネルから別のチャネルにバージョンを複製した場合に発生します)。

ホスティングは、プレビューチャネルを削除する2つの異なる方法をサポートしています。

  • Firebaseコンソール
    プレビューチャネルの行で、 をクリックし、 [チャネルの削除]を選択します。削除を確認します。

  • FirebaseCLI
    任意のディレクトリから次のコマンドを実行します。

    firebase hosting:channel:delete CHANNEL_ID

プレビューチャネルとクローン作成のためのCLIコマンド

プレビューチャネルのコマンド

複数のホスティングサイトがある場合、プレビューチャネルのすべてのコマンドはデプロイターゲットをサポートします。

指示説明
firebase hosting:channel:create CHANNEL_ID

指定されたCHANNEL_IDを使用して、デフォルトのホスティングサイトに新しいプレビューチャネルを作成します

このコマンドはチャネルに展開されません。

firebase hosting:channel:delete CHANNEL_ID

指定したプレビューチャンネルを削除します

サイトのライブチャンネルを削除することはできません。

firebase hosting:channel:deploy CHANNEL_ID

ホスティングコンテンツと設定を指定されたプレビューチャネルにデプロイします

プレビューチャネルがまだ存在しない場合、このコマンドは、チャネルに展開する前に、デフォルトのホスティングサイトにチャネルを作成します。

firebase hosting:channel:listデフォルトのホスティングサイトのすべてのチャネル(「ライブ」チャネルを含む)を一覧表示します
firebase hosting:channel:open CHANNEL_ID指定されたチャネルのURLでブラウザを開くか、ブラウザで開くことができない場合はURLを返します

バージョンのクローン作成のコマンド

指示説明
firebase hosting:clone \
SOURCE_SITE_ID : SOURCE_CHANNEL_ID \
TARGET_SITE_ID : TARGET_CHANNEL_ID

指定された「ソース」チャネルに最後にデプロイされたバージョンを、指定された「ターゲット」チャネルに複製します

このコマンドは、指定された「ターゲット」チャネルにも展開されます。 「ターゲット」チャネルがまだ存在しない場合、このコマンドは、チャネルに展開する前に、「ターゲット」ホスティングサイトに新しいプレビューチャネルを作成します。

firebase hosting:clone \
SOURCE_SITE_ID :@ VERSION_ID \
TARGET_SITE_ID : TARGET_CHANNEL_ID

指定されたバージョンを指定された「ターゲット」チャネルに複製します

このコマンドは、指定された「ターゲット」チャネルにも展開されます。 「ターゲット」チャネルがまだ存在しない場合、このコマンドは、チャネルに展開する前に、「ターゲット」ホスティングサイトに新しいプレビューチャネルを作成します。

VERSION_IDは、Firebaseコンソールのホスティングダッシュボードにあります。