Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

遠程配置參數和條件

當使用火力地堡控制台或遠程配置後端的API ,可以定義一個或多個參數(鍵值對),並為這些參數提供應用程序內的默認值。您可以通過定義服務器端參數值來覆蓋應用內默認值。參數鍵和參數值是字符串,但當您在應用程序中使用這些值時,可以將參數值轉換為其他數據類型。

使用火力地堡控制台或遠程配置REST API ,可以為您的參數,以及所使用的應用程序實例的目標群體條件值創建新的默認值。每次您在 Firebase 控制台中更新配置時,Firebase 都會創建並發布遠程配置模板的新版本。存儲以前的版本,允許您根據需要檢索或回滾。您也可以通過 REST API 使用這些操作。

本指南解釋了參數、條件、規則、條件值,以及如何在遠程配置服務器和您的應用程序中對各種參數值進行優先級排序。它還提供有關用於創建條件的規則類型的詳細信息。

條件、規則和條件值

條件用於定位一組應用程序實例。條件是由該都必須計算為一個或多個規則了true的情況,以評估true對一個給定的應用實例。如果規則中的值是不確定的(例如,當沒有可用的值),該規則將評估為false

例如,定義了一個應用程序的初始頁面的參數可以使用簡單的規則顯示基於OS類型不同的圖像if device_os = Android

或者,時間條件可以用來當你的應用程序顯示的特殊促銷品來控制。

一個參數可以有多個使用不同條件的條件值,並且參數可以在一個項目中共享條件。在參數標籤的火力地堡控制台,您可以查看每個參數的條件值的提取比例。此指標表示過去 24 小時內收到每個值的請求的百分比。

參數值優先級

一個參數可能有幾個與之關聯的條件值。以下規則確定從遠程配置服務器獲取哪個值,以及在特定時間點在給定應用程序實例中使用哪個值:

根據以下優先級列表獲取服務器端參數值

  1. 首先,有條件的值應用,如果有任何一個評估為條件, true為給定的應用實例。如果多個條件評價為true ,第一(頂部)一個在火力地堡控制台UI中所示的優先級,並且當應用程序從後端獲取值被提供與該條件相關聯的條件的值。您可以通過拖動並在條件標籤下探條件發生變化的條件下的優先級。

  2. 如果有與計算結果為條件沒有條件值true ,提供服務器端的默認值,當一個應用程序從後端獲取值。如果參數不會在後端存在,或者如果默認值設置為使用應用默認值,則沒有提供任何值該參數只有當應用的取值。

在您的應用程序,參數值由返回get方法根據下面的優先級列表

  1. 如果從後端獲取值然後激活,則應用程序使用獲取的值。激活的參數值是持久的。
  2. 如果沒有從後端獲取值,或者如果從遠程配置後端獲取的值尚未激活,則應用程序使用應用程序內默認值。
  3. 如果沒有應用程式默認值已設置,則應用程序使用(如靜態類型值0intfalseboolean )。

此圖總結了遠程配置後端和您的應用程序中參數值的優先級:

參數值數據類型

遠程配置允許您為每個參數選擇數據類型,並在模板更新之前根據該類型驗證所有服務器端值。該數據類型被存儲並在返回getRemoteConfig請求。

目前支持的類型有:

  • String
  • Boolean
  • Number
  • JSON

在 Firebase 控制台 UI 中,可以從參數鍵旁邊的下拉列表中選擇數據類型。在REST API類型可以使用被設置value_type參數對象內場。

參數組

遠程配置允許您將參數組合在一起,以獲得更有條理的 UI 和思維模型。

例如,假設您在推出新的登錄功能時需要啟用或禁用三種不同的身份驗證類型。使用遠程配置,您可以創建三個參數以根據需要啟用類型,然後將它們組織在名為“新登錄”的組中,無需添加前綴或特殊排序。

您可以使用 Firebase 控制台或遠程配置 REST API 創建參數組。您創建的每個參數組在您的遠程配置模板中都有一個唯一的名稱。創建參數組時,請記住:

  • 參數在任何時候都只能包含在一組中,並且參數鍵在所有參數中仍然必須是唯一的。
  • 參數組名稱限制為 256 個字符。
  • 如果您同時使用 REST API 和 Firebase 控制台,請確保更新任何 REST API 邏輯以處理髮佈時的參數組。

使用 Firebase 控制台創建或修改參數組

你可以在群組參數參數的火力地堡控制台選項卡。要創建或修改組:

  1. 選擇管理組
  2. 為參數選擇複選框要添加並選擇移至組
  3. 選擇一個現有的組,或者通過輸入名稱和說明創建新組,並選擇創建新組。您保存一組後,可使用發布更改按鈕發布。

以編程方式創建組

遠程配置REST API提供了一個自動化的方式來創建和發布的參數組。假設您熟悉 REST 並設置為授權對 API 的請求,您可以執行以下步驟以編程方式管理組:

  1. 檢索當前模板
  2. 添加 JSON 對象來表示您的參數組
  3. 使用 HTTP PUT 請求發布參數組。

所述parameterGroups對象包含組密鑰,具有嵌套的描述和分組的參數的列表。請注意,每個組密鑰必須是全局唯一的。

例如,下面是一個模板修訂版帶有一個參數,添加參數組“新菜單”的摘錄pumpkin_spice_season

{
  "parameters": {},
  "version": {
    "versionNumber": "1",

    …


  },
  "parameterGroups": {
    "new menu": {
      "description": "New Menu",
      "parameters": {
        "pumpkin_spice_season": {
          "defaultValue": {
            "value": "true"
          },
          "description": "Whether it's currently pumpkin spice season."
        }
      }
    }
  }
}

條件規則類型

Firebase 控制台支持以下規則類型。等效的功能是遠程配置REST API中提供,如在詳細條件表達式參考

規則類型操作員筆記
應用程序==從與您的 Firebase 項目關聯的應用的應用 ID 列表中選擇。當您添加一個應用火力地堡,您輸入的iOS捆綁ID或Android包名稱定義的裸如應用程序ID在遠程配置規則的屬性。

使用此屬性如下:
  • 對於iOS:使用該應用程序的CFBundleIdentifier 。您可以在Xcode中的應用的主要目標在常規選項卡找到捆綁標識符
  • 對於Android的:使用應用程序的的applicationID 。你可以找到applicationId在您的應用程序級build.gradle文件。
應用版本對於字符串值:
完全匹配,
包含,
不含,
正則表達式

對於數值:
=、≠、>、≥、<、≤

指定要定位的應用程序版本。

使用這個規則之前,你必須使用一個App ID規則來選擇你的火力地堡項目相關的一個Android / iOS應用。

對於iOS:使用該應用程序的CFBundleShortVersionString

注:請確保您的iOS應用程序使用的iOS火力地堡的SDK版本6.24.0或以上,如不早期版本(見發送CFBundleShortVersionString發行說明)。

對於Android的:使用應用程序的的versionName

此規則的字符串比較區分大小寫。當使用完全匹配包含不包含,或正則表達式運算符,你可以選擇多個值。

當使用正則表達式運算符,你可以創建正則表達式RE2格式。您的正則表達式可以匹配全部或部分目標版本字符串。您也可以使用^$錨的開始,結束,或目標串的整體匹配。

版本號對於字符串值:
完全匹配,
包含,
不含,
正則表達式

對於數值:
=、≠、>、≥、<、≤

指定要定位的應用程序版本。

使用這個規則之前,你必須使用一個App ID規則來選擇你的火力地堡項目相關的iOS或Android應用程序。

此運算符僅適用於 iOS 和 Android 應用程序。它對應於應用程序的CFBundleVersion iOS和的versionCode為Android。此規則的字符串比較區分大小寫。

當使用完全匹配包含不包含,或正則表達式運算符,你可以選擇多個值。

當使用正則表達式運算符,你可以創建正則表達式RE2格式。您的正則表達式可以匹配全部或部分目標版本字符串。您也可以使用^$錨的開始,結束,或目標串的整體匹配。

平台== IOS
安卓
網絡
操作系統==

指定要定位的操作系統。

使用這個規則之前,你必須使用一個App ID規則來選擇你的火力地堡項目相關的網絡應用

此規則評估為true給定Web應用程序例如,如果操作系統和版本在指定列表中的目標值一致。
瀏覽器==

指定要定位的瀏覽器。

使用這個規則之前,你必須使用一個App ID規則來選擇你的火力地堡項目相關的網絡應用

此規則評估為true給定Web應用程序來說,如果瀏覽器及其版本在指定列表中的目標值一致。
約會時間<=, >指定的日期和時間,可以是設備時區,也可以是指定的時區,例如“(GMT+11) 悉尼時間”。將當前時間與設備獲取時間進行比較。
隨機百分位的用戶<=, > 0-100

使用這個字段(如用小的樣本量為0.0001%),以將更改應用於應用程序實例的隨機樣本,使用<=>運營商段用戶(應用實例)成組。

每個應用程序實例持續映射到一個隨機的整數或分數,根據該項目定義的。規則將使用默認的鍵(在火力地堡控制台中顯示為DEF),除非你選擇或創建另一個關鍵。您可以返回一個規則,使用使用此鍵字段清除隨機化用戶的默認密鑰。您可以跨規則使用單個鍵在給定百分比範圍內一致地處理相同的應用程序實例。或者,您可以通過創建新鍵為給定百分比範圍選擇一組新的隨機分配的應用程序實例。

例如,為了創建兩個相關的條件,每個適用於一個應用程序的用戶的非重疊的5%,則可以有一個條件包括<= 5%規則,和其他條件包括一個> 5%規則和<= 10%的規定。為了讓某些用戶可以隨機出現在兩個組中,請為每個條件中的規則使用不同的密鑰。

觀眾中的用戶==從您為項目設置的 Google Analytics 受眾列表中選擇一個或多個。

此規則需要應用 ID 規則來選擇與您的 Firebase 項目關聯的應用。

注:由於許多分析觀眾通過事件或用戶屬性,它可以根據應用程序的用戶的行為定義,它可能需要一些時間在觀眾規則的用戶要為一個給定的應用程序實例的效果。

地區/國家的設備==選擇一個或多個地區或國家。此規則的計算結果為true對於給定的應用程序實例如果實例是在列出的任何地區或國家。設備國家/地區代碼是使用請求中設備的 IP 地址或 Firebase Analytics 確定的國家/地區代碼確定的(如果 Analytics 數據與 Firebase 共享)。
設備語言==選擇一種或多種語言。此規則評估為true對於給定的應用程序實例如果應用程序實例安裝在使用中列出的語言之一的設備上。
用戶屬性對於字符串值:
包含,
不含,
完全匹配,
正則表達式

對於數值:
=、≠、>、≥、<、≤

注意:在客戶端上,您只能為用戶屬性設置字符串值。對於使用數字運算符的條件,遠程配置將相應用戶屬性的值轉換為整數/浮點數。
從可用的 Google Analytics 用戶屬性列表中進行選擇。要了解如何使用用戶的屬性來定制你的應用為你的用戶群非常具體的細分,請參閱遠程配置和用戶屬性

要了解有關用戶屬性的更多信息,請參閱以下指南:

當使用完全匹配包含不包含正則表達式運算符,你可以選擇多個值。

當使用正則表達式運算符,你可以創建正則表達式RE2格式。您的正則表達式可以匹配全部或部分目標版本字符串。您也可以使用^$錨的開始,結束,或目標串的整體匹配。

注:自動收集用戶的屬性創建遠程配置條件的,當前不可用。
進口段==選擇一個或多個導入的段。該規則要求設置自定義進口段

搜索參數和條件

您可以搜索項目的參數鍵,參數值和條件,從火力地堡控制台使用搜索框在遠程配置參數選項卡的頂部。

參數和條件的限制

在 Firebase 項目中,您最多可以有 2000 個參數和 500 個條件。參數鍵最長可達 256 個字符,必須以下劃線或英文字母字符(AZ、az)開頭,還可以包含數字。項目中參數值字符串的總長度不能超過 800,000 個字符。

下一步

要開始配置你的火力地堡項目,請參閱設置了火力地堡遠程配置項目