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

Remote Config テンプレートは、Firebase プロジェクト用にユーザーが作成する、JSON 形式のパラメータと条件のサービス側セットです。このテンプレートは Firebase コンソールを使用して変更や管理を行うことができます。Firebase コンソールの [Parameters] タブと [Conditions] タブには、テンプレートの内容がグラフィカルに表示されます。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. デフォルトでは、現在アクティブなテンプレートが詳細ペインに表示されます。一覧内の特定のバージョンの詳細を表示する場合は、右にあるメニューからそのバージョンを選択します。

  3. 保存されているバージョンの詳細を詳細ペインに表示すると、そのバージョンにロールバックするためのオプション ボタンがページ右上に表示されます。そのバージョンにロールバックし、すべてのアプリとユーザーに対してすぐにその値を使用する必要がある場合のみ、このボタンをクリックして確定してください。

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 がアクティブなテンプレートになります。

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

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