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

遠程配置參數和條件

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

使用Firebase控制台或Remote Config REST API ,您可以為參數創建新的默認值,以及用於定位應用程序實例組的條件值。每次在Firebase控制台中更新配置時,Firebase都會創建並發布新版本的Remote Config模板。以前的版本已存儲,您可以根據需要進行檢索或回滾。您也可以通過REST API使用這些操作。

本指南介紹了參數,條件,規則,條件值,以及如何在Remote Config Server和您的應用程序中確定各種參數值的優先級。它還提供了有關用於創建條件的規則類型的詳細信息。

條件,規則和條件值

條件用於定位一組應用程序實例。條件由一個或多個規則組成,對於給定的應用程序實例,這些條件必須全部評估為true才能使條件評估為true 。如果規則的值未定義(例如,當沒有值可用時),則該規則的評估結果為false

例如, if device_os = Android使用簡單規則,用於定義應用程序啟動頁面的參數可以根據操作系統類型顯示不同的圖像:

或者,可以使用時間條件來控制您的應用何時顯示特殊促銷項目。

參數可以具有使用不同條件的多個條件值,並且參數可以在項目中共享條件。

參數值優先級

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

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

  1. 首先,應用條件值,如果條件值對於給定的應用程序實例為true 。如果多個條件評估為true ,則Firebase控制台UI中顯示的第一個(頂部)優先級高,當應用程序從後端獲取值時,將提供與該條件關聯的條件值。您可以通過在“ 條件”選項卡中拖放條件來更改條件的優先級。

  2. 如果沒有條件值的條件值為true ,則當應用程序從後端獲取值時,將提供服務器端默認值。如果後端中不存在參數,或者默認值設置為No value ,則當應用程序獲取值時,不會為該參數提供值。

在您的應用中, get方法根據以下優先級列表返回參數值

  1. 如果從後端獲取了一個值然後將其激活,則該應用將使用獲取的值。激活的參數值是持久的。
  2. 如果沒有從後端獲取任何值,或者尚未激活從“遠程配置”後端獲取的值,則該應用將使用應用內默認值。
  3. 如果未設置應用內默認值,則該應用會使用靜態類型值(例如int0boolean false )。

此圖總結瞭如何在Remote Config後端以及您的應用程序中確定參數值的優先級:

參數組

Remote Config允許您將參數分組在一起,以獲得更加有條理的UI和思維模型。

例如,假設您需要在啟用新的登錄功能時啟用或禁用三種不同的身份驗證類型。使用Remote Config,您可以創建三個參數來啟用所需的類型,然後將它們組織到名為“ New login”的組中,而無需添加前綴或特殊排序。

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

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

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

您可以在Firebase控制台的“ 參數”選項卡中對參數進行分組。要創建或修改組:

  1. 選擇管理組
  2. 選擇要添加的參數的複選框,然後選擇“ 移至組”
  3. 選擇一個現有的組,或通過輸入名稱和描述並選擇創建新組創建一個新組 。保存組後,可以使用“ 發布更改”按鈕將其發布

以編程方式創建組

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

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

parameterGroups對象包含組鍵,嵌套說明和分組參數列表。請注意,每個組密鑰必須是全局唯一的。

例如,這是模板修訂版的摘錄,其中添加了參數組“ new menu”和一個參數, 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列表中選擇。 將應用程序添加到Firebase時,您輸入的iOS捆綁包ID或Android軟件包名稱定義了在“遠程配置”規則中作為應用程序ID公開的屬性。

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

對於數值:
=,≠,>,≥,<,≤
輸入一個值以指定應用程序的特定版本(或相關版本)。使用此規則之前,必須使用“ 應用程序ID”規則選擇與Firebase項目關聯的Android應用程序。 該運算符僅適用於Android應用,並且與應用的版本名稱相對應。此規則的字符串比較區分大小寫。

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

使用正則表達式運算符時,可以創建RE2格式的正則表達式。您的正則表達式可以匹配全部或部分目標版本字符串。您還可以使用^$定位符來匹配目標字符串的開始,結尾或整個字符串。

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

對於數值:
=,≠,>,≥,<,≤
輸入一個值以指定應用程序的特定版本(或相關版本)。使用此規則之前,您必須使用“ 應用程序ID”規則選擇與Firebase項目關聯的iOS應用程序。 該運算符僅適用於iOS應用,並且對應於應用的CFBundleVersion 。此規則的字符串比較區分大小寫。

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

使用正則表達式運算符時,可以創建RE2格式的正則表達式。您的正則表達式可以匹配全部或部分目標版本字符串。您還可以使用^$定位符來匹配目標字符串的開始,結尾或整個字符串。

操作系統類型 == 的iOS
安卓系統
約會時間 <=,> 指定的日期和時間,可以是設備時區,也可以是諸如“(GMT + 11)悉尼時間”之類的時區。 將當前時間與設備獲取時間進行比較。
隨機百分比的用戶 <=,> 0-100

使用此字段可將更改應用於應用實例的隨機樣本(樣本大小小至.0001%),並使用<=>運算符將用戶(應用實例)劃分為組。

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

例如,要創建兩個分別適用於5%不重疊應用程序用戶的相關條件,您可以使一個條件包含<= 5%規則,而另一個條件同時包含> 5%規則和<= 10%的規則。為了使某些用戶可以隨機出現在兩個組中,請為每個條件中的規則使用不同的鍵。

受眾群體中的用戶 == 從您為項目設置的Google Analytics(分析)受眾群體列表中選擇一個或多個。

該規則需要一個App ID規則才能選擇與Firebase項目關聯的應用。

注意:由於許多Google Analytics(分析)受眾群體是由事件或用戶屬性定義的,而事件或用戶屬性可以基於應用程序用戶的操作,因此受眾群體中用戶規則可能需要一段時間才能對給定的應用程序實例生效。

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

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

注意:在客戶端上,您只能為用戶屬性設置字符串值。對於使用數字運算符的條件,Remote Config會將相應的用戶屬性的值轉換為整數/浮點數。
從可用的Google Analytics(分析)用戶屬性列表中選擇。 要了解如何使用用戶屬性針對用戶群的特定部分自定義應用程序,請參閱遠程配置和用戶屬性

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

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

使用正則表達式運算符時,可以創建RE2格式的正則表達式。您的正則表達式可以匹配全部或部分目標版本字符串。您還可以使用^$定位符來匹配目標字符串的開始,結尾或整個字符串。

注意:創建“遠程配置”條件時, 自動收集的用戶屬性當前不可用。

搜索參數和條件

您可以使用“遠程配置參數”選項卡頂部的搜索框,從Firebase控制台中搜索項目的參數鍵,參數值和條件。

參數和條件的限制

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

下一步

要開始配置Firebase項目,請參閱“ 設置Firebase遠程配置項目”