コンソールへ移動

Remote Config テンプレートとバージョン管理

Remote Config テンプレートは、Firebase プロジェクト用にユーザーが作成する、JSON 形式のパラメータと条件のサーバー側セットです。このテンプレートは Firebase コンソールを使用して変更や管理を行うことができます。Firebase コンソールの [パラメータ] タブと [条件] タブには、テンプレートの内容がグラフィカルに表示されます。REST API を使用して構成を変更および管理する場合は、次の例(remote-config.json)のようなテンプレート ファイルを直接編集します。

{
  "parameters":[
    {
      "key":"welcome_message",
      "value_options":[
        {
          "value":"Welcome to this sample app"
        }
      ]
    },
    {
      "key":"welcome_message_caps",
      "value_options":[
        {
          "value":"false"
        }
      ]
    }
  ],
  "version":{
    "version_number": "42",
    "update_time":"2018-05-11T18:46:40Z",
    "update_user":{
      "name":"Jane Developer",
      "email":"jane@developer.org",
      "imageUrl":"http://image.google.com/path-to-profile-photo-for-jane"
    },
    "description":"Adding welcome messages",
    "origin":"CONSOLE",
    "update_type":"INCREMENTAL_UPDATE"
  }
}

パラメータを更新するたびに新しいバージョンの Remote Config テンプレートが作成され、前のテンプレートは、必要に応じて再取得やロールバックが可能なバージョンとして保存されます。バージョン番号は、Remote Config によって保存された初期値から順に増えていきます。例に示すとおり、すべてのテンプレートに version フィールドがあり、その特定のバージョンに関するメタデータが含まれています。

Firebase コンソールまたは REST API を使用して、次のバージョン管理タスクを行うことができます。

  • 保存されているすべてのテンプレート バージョンの一覧表示
  • 特定のバージョンの再取得
  • 特定のバージョンへのロールバック

Remote Config テンプレートを管理するときは有効期限に注意してください。作成日から 90 日間が有効期間の上限です。また、保存できるバージョンの数は合計 300 までです。これらの制限を超えてテンプレートの保存やロールバックが必要となる場合は、手動で保存してください。アプリで使用中の現在アクティブな Remote Config テンプレートが期限切れになることはありません。ただし、テンプレートのアップデートにより、作成から 90 日を超えてアクティブだったテンプレートが置き換えられた場合は、(有効期限が切れているため)再取得することはできません。

Firebase コンソールで Remote Config テンプレートのバージョンを管理する

Firebase コンソールのグラフィカル インターフェースを使用して、テンプレート バージョンの一覧表示と詳細表示を行うことができます。また、必要に応じてロールバックすることもできます。これらのタスクは次の手順で行います。

  1. [Parameters] タブで、右上に表示される時計アイコンを選択します。[変更履歴] ページが開き、保存されているすべてのテンプレート バージョンが右側のリストメニューに一覧表示されます。

  2. デフォルトでは、現在アクティブなテンプレートが詳細ペインに表示されます。一覧内の別のバージョンの詳細情報を表示するには、右のメニューからそのバージョンを選択します。

    保存されているバージョンごとに表示される詳細情報には、変更の発生理由(コンソール、REST API、ロールバックのいずれかによる変更、またはテンプレートの強制保存による増分変更)が含まれます。

  3. 現在選択されているバージョンと保存されている別のバージョンの詳細な差分を表示するには、選択されていないバージョンのコンテキスト メニューにカーソルを合わせて、[選択したバージョンと比較] を選択します。

  4. ロールバック可能な以前のテンプレート バージョンを選択すると、そのバージョンにロールバックするためのオプション ボタンがページの右上に表示されます。そのバージョンにロールバックし、すべてのアプリとユーザーに対してすぐにその値を使用する必要がある場合のみ、このボタンをクリックして確定してください。

REST API を使用して Remote Config テンプレートのバージョンを管理する

このセクションでは、REST API を使用して Remote Config テンプレートのバージョンを管理する方法について説明します。プログラムでテンプレートを作成、変更、保存する方法の詳細については、Remote Config REST API を使用するを参照してください。

保存されているすべての Remote Config テンプレートのバージョンを一覧表示する

カスタム HTTP メソッド :listVersions を使用すると、保存されているすべての Remote Config テンプレート バージョンの一覧を取得できます。次に例を示します。

curl --compressed -D headers -H "Authorization: Bearer token" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id:listVersions

レスポンスには、保存されているすべてのバージョンのメタデータが含まれます。メタデータには、アップデートの時刻、作成したユーザー、コンソールと REST API のどちらを使用して作成されたかなどが含まれます。バージョン要素の例を次に示します。

{
  "versions": [{
    "version_number": "6",
    "update_time": "2018-05-12T02:38:54Z",
    "update_user": {
      "email": "jane@developer.org",
    },
    "description": "One small change on the console",
    "origin": "CONSOLE",
    "update_type": "INCREMENTAL_UPDATE"
  }]

Remote Config テンプレートの特定のバージョンを取得する

URL パラメータ ?version_number を追加すると、保存されている Remote Config テンプレートの任意のバージョンを取得できます。次に例を示します。

curl --compressed -D headers -H "Authorization: Bearer token" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig?version_number=6

このパラメータは GET オペレーションでのみ有効です。これを使用してアップデートのバージョン番号を指定することはできません。?version_number パラメータがない同様の get リクエストを使用すると、Remote Config バックエンドから JSON を取得するの説明にあるとおり、現在アクティブなテンプレートが取得されます。

保存されている特定の Remote Config テンプレート バージョンにロールバックする

保存されている Remote Config テンプレートにロールバックするには、カスタム メソッド :rollback を使用し、適用する特定のバージョンをリクエスト本文に指定して HTTP POST を発行します。次に例を示します。

curl --compressed -D headers -H "Authorization: Bearer token" -X POST https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig:rollback -d '{"version_number": 6}'

レスポンスには、アクティブになった保存済みテンプレートの内容と、その新しいバージョンのメタデータが含まれます。

このロールバック操作を行うと、実際には新しい番号のバージョンが作成されることに注意してください。たとえば、バージョン 10 からバージョン 6 にロールバックすると、実際にはバージョン 6 の新しいコピーが作成されます。この新しいコピーは元のバージョンと同じですが、バージョン番号が 11 であるという点のみ異なります。有効期限が切れていないと仮定すると、元のバージョン 6 は保存されたままで、バージョン 11 がアクティブなテンプレートになります。