Google is committed to advancing racial equity for Black communities. See how.
本頁面由 Cloud Translation API 翻譯而成。
Switch to English

遠程配置模板和版本控制

遠程配置模板是您為Firebase項目創建的服務器端一組JSON格式的參數和條件。您可以使用Firebase控制台修改和管理模板,該控制台在“ 參數條件”選項卡中以圖形格式顯示模板的內容。您還可以使用遠程配置後端API來修改和管理您的配置。

這是模板文件的示例:

   {
    "conditions": [
      {
        "name": "ios",
        "expression": "device.os == 'ios'"
      }
    ],
    "parameters": {
      "welcome_message": {
        "defaultValue": {
          "value": "Welcome to this sample app"
        },
        "conditionalValues": {
          "ios": {
            "value": "Welcome to this sample iOS app"
          }
        }
      },
      "welcome_message_caps": {
        "defaultValue": {
          "value": "false"
        }
      },
      "header_text": {
        "defaultValue": {
          "useInAppDefault": true
        }
      }
    },
    "version": {
      "versionNumber": "28",
      "updateTime": "2020-05-14T18:39:38.994Z",
      "updateUser": {
        "email": "user@google.com"
      },
      "updateOrigin": "CONSOLE",
      "updateType": "INCREMENTAL_UPDATE"
    }
  }
 

每次更新參數時,Remote Config都會創建一個新版本的Remote Config模板,並將以前的模板存儲為一個版本,您可以根據需要檢索或回滾該版本。版本號從Remote Config存儲的初始值開始按順序遞增。所有模板都包括一個如圖所示的version字段,其中包含有關該特定版本的元數據。

使用Firebase控制台或Remote Config後端API,您可以執行以下版本管理任務:

  • 列出所有存儲的模板版本
  • 檢索特定版本
  • 回滾到特定版本

在管理Remote Config模板時,請牢記到期閾值:自創建時間起90天,或總共限制300個存儲版本。如果要存儲或回滾到這些限制之外的模板,請手動保存並存儲它。您的應用程序正在使用的當前活動的Remote Config模板不會過期。但是,如果自創建以來已激活了90天以上,並且已被更新替換,則無法再次檢索(由於到期)。

使用Firebase控制台管理遠程配置模板版本

Firebase控制台提供了一個圖形界面,用於列出模板版本,查看其詳細信息並根據需要進行回滾。要執行這些任務:

  1. 在“ 參數”選項卡中,選擇顯示在右上方的“時鐘”圖標。這將打開“ 更改歷史記錄”頁面,在右側的列表菜單中列出所有存儲的模板版本。

  2. 默認情況下,詳細信息窗格顯示當前活動模板。要查看列表中另一個版本的詳細信息,請從右側菜單中選擇它。

    為每個存儲版本顯示的詳細信息包括有關更改是由控制台,REST API還是回滾產生的,還是由強制保存模板引起的增量更改。

  3. 您可以將鼠標懸停在任何未選擇版本的上下文菜單上,然後選擇“ 與選定版本進行比較”,以查看當前選定版本和任何其他存儲版本的詳細差異

  4. 對於有資格進行回滾的以前的模板版本,頁面右上方顯示一個用於回滾到該版本的選項按鈕。僅當您確定要回滾到該版本並立即對所有應用程序和用戶使用這些值時,請單擊並確認。

使用後端API管理遠程配置模板版本

本節介紹如何使用REST API和Firebase Admin SDK管理Remote Config模板的版本。有關如何以編程方式創建,修改和保存模板的更多詳細信息,請參見以編程方式修改遠程配置

列出遠程配置模板的所有存儲版本

使用Remote Config後端API,您可以檢索Remote Config模板的所有存儲版本的列表。例如:

Node.js

 function listAllVersions() {
  admin.remoteConfig().listVersions()
    .then((listVersionsResult) => {
      console.log("Successfully fetched the list of versions");
      listVersionsResult.versions.forEach((version) => {
        console.log('version', JSON.stringify(version));
      });
    })
    .catch((error) => {
      console.log(error);
    });
}
 

休息

 curl --compressed -D headers -H "Authorization: Bearer <var>token</var>" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/<var>my-project-id</var>: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後端API,您可以檢索Remote Config模板的任何存儲版本。傳遞不帶任何參數的getTemplate()以檢索模板的最新版本,或檢索特定版本,請使用getTemplateAtVersion() 。例如:

Node.js

 // Get template version: 6
admin.remoteConfig().getTemplateAtVersion('6')
  .then((template) => {
    console.log("Successfully fetched the template with ETag: " + template.etag);
  })
  .catch((error) => {
    console.log(error);
  });
 

休息

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

URL參數?version_number僅對GET操作有效;您不能使用它來指定更新的版本號。沒有?version_number參數的類似get請求將檢索當前的活動模板。

回滾到Remote Config模板的特定存儲版本

使用Remote Config後端API,您可以回滾到模板的任何存儲版本。例如:

Node.js

 // Roll back to template version: 6
admin.remoteConfig().rollback('6')
  .then((template) => {
    console.log("Successfully rolled back to template version 6.");
    console.log("New ETag: " + template.etag);
  })
  .catch((error) => {
    console.log('Error trying to rollback:', e);
  })
 

休息

要回滾到存儲的Remote Config模板,請使用自定義方法:rollback發出HTTP POST,並在請求正文中發出要應用的特定版本。例如:

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

響應包含當前活動的存儲模板的內容及其新版本的元數據。

請注意,此回滾操作有效地創建了一個新的編號版本。例如,從版本10回滾到版本6會有效地創建一個版本6的新副本,該副本與原始版本的不同之處僅在於其版本號為11。假設尚未到期,仍會存儲原始版本6,並且版本11成為活動模板。