遠端設定參數和條件


您可以為用戶端和伺服器用途設定範本。用戶端範本會提供給實作 Remote Config 專用 Firebase 用戶端 SDK 的任何應用程式例項,包括 Android、Apple、Web、Unity、Flutter 和 C++ 應用程式。Remote Config 個參數和值的來源 伺服器專用範本提供給 Remote Config 實作 (包括 Cloud Run 和 Cloud Functions) 使用 Firebase 管理員 Node.js SDK v12.1.0 以上版本。

使用 Firebase 控制台或 Remote Config 個後端 API 您可以定義一或多個參數 ),並為這些參數提供應用程式內預設值。您可以定義參數值,藉此覆寫應用程式內的預設值。參數鍵和參數值都是字串,但在應用程式中使用這些值時,參數值可以轉換為其他資料類型。

您可以使用 Firebase 控制台、Admin SDKRemote Config REST API,為參數建立新的預設值,以及用於指定應用程式執行個體群組的條件值。每次在 Firebase 控制台中更新設定時, Firebase 會建立並發布新版 Remote Config 範本。 系統會儲存先前的版本,讓您視需要擷取或復原。您可以在 Firebase 控制台中使用這些作業 Firebase Admin SDK 和 REST API 等 管理 Remote Config 個範本版本

本指南說明參數、條件、規則、條件 值,以及系統如何決定各參數值的優先順序 Remote Config 後端和您的應用程式。也會詳細說明 用來建立條件的規則類型

條件、規則和條件值

條件可用於指定一組應用程式執行個體。條件由一或多項規則組成,且所有規則都必須評估為 true,才能針對特定應用程式執行個體將條件評估為 true。如果規則值是 未定義 (例如沒有可用的值時),該規則會評估為 false

舉例來說,您可以建立一個參數來定義大型語言模型 模型 (LLM) 模型名稱和版本字串 將自訂信號用於建立模型 規則。在這個用途中,您可以使用穩定的模型版本做為預設值,為大多數要求提供服務,並使用自訂信號使用實驗模型,回應測試用戶端要求。

參數可以有多個使用不同條件的條件式值,且參數可在專案中共用條件。在「Parameters」分頁 Firebase控制台中,您可以查看每個專案的擷取百分比 參數的條件值這項指標會顯示過去 24 小時內收到各個值的要求百分比。

參數值優先順序

一個參數可能有多個相關聯的條件值。 下列規則會決定要從 Remote Config 擷取哪個值 範本,以及特定應用程式執行個體中 時間點:

  1. 首先,系統會針對特定用戶端要求,針對任何評估為 true 的條件套用條件值。如果 多個條件的評估結果為 true,這裡會顯示第一個 (頂端) 條件, Firebase 控制台使用者介面優先,以及條件式值 應用程式擷取值時,系統會提供與該條件相關聯的 。如要變更條件優先順序,請拖曳 在「Conditions」(條件) 分頁中捨棄條件。

  2. 如果沒有條件值包含得出 true 的條件, 系統會在應用程式擷取時提供 Remote Config 的預設值 從後端輸出這些值如果後端不存在參數,或是預設值設為「使用應用程式內預設值」,則應用程式擷取值時,系統不會為該參數提供任何值。

在應用程式中,get 方法會根據以下優先順序清單傳回參數值

  1. 如果從後端擷取值並啟用,應用程式會使用擷取的值。已啟用的參數值為永久性。
  2. 如果未從後端擷取任何值,或是從 Remote Config 後端擷取的值未啟用,應用程式會使用應用程式內的預設值。

    如要進一步瞭解如何取得及設定預設值,請參閱「下載 Remote Config 範本預設值」一文。

  3. 如果未設定應用程式內的預設值,應用程式會使用靜態類型值 (例如 0 代表 intfalse 代表 boolean)。

這張圖表總結了在 Remote Config 後端和您的應用程式:

這張圖表顯示上述已排序清單描述流程

參數值資料類型

Remote Config 可讓您為每項參數選取資料類型,且 建立範本前,依據該類型驗證所有 Remote Config 值 更新。資料類型會儲存在 getRemoteConfig 要求中,並在該要求中傳回。

支援的資料類型包括:

  • String
  • Boolean
  • Number
  • JSON

Firebase 控制台 UI 中,您可以從參數鍵旁的下拉式選單中選取資料類型。在 REST API 中,您可以使用 參數物件中的 value_type 欄位。

參數群組

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. 選取現有群組,或輸入名稱並建立新群組 說明,然後選取「建立新群組」。 儲存群組後,即可使用 「發布變更」按鈕。

條件規則類型

Firebase 控制台支援下列規則類型。Remote Config REST API 提供等效功能,詳情請參閱條件式運算式參考資料

規則類型 運算子 注意事項
應用程式 == 從與 Firebase 專案相關聯的應用程式 ID 清單中選取。 將應用程式新增至 Firebase 時,您會輸入軟體包 ID 或 Android 套件名稱,藉此定義在 Remote Config 規則中顯示為「App ID」的屬性。

這項屬性的使用方式如下:
  • Apple 平台:使用應用程式的 CFBundleIdentifier。您可以在「一般」分頁中找到應用程式的「軟體包 ID」 應用程式的 Xcode 主要目標
  • Android:使用應用程式的 applicationId。您可以在應用程式層級找到 applicationId build.gradle 檔案。
應用程式版本 字串值:
完全相符、
包含、
不包含、
包含規則運算式

數值:
<, <=, =, !=, >, >=

指定要指定的應用程式版本。

使用這項規則前,您必須使用「應用程式 ID」規則來選取 與 Firebase 專案相關聯的 Android/Apple 應用程式。

Apple 平台:使用應用程式的 CFBundleShortVersionString

注意:請確認您的 Apple 應用程式使用 Firebase Apple 平台 SDK 6.24.0 以上版本,因為較舊版本不會傳送 CFBundleShortVersionString (請參閱版本資訊)。

Android 裝置:使用應用程式的 versionName

這項規則的字串比較會區分大小寫。使用 完全符合包含不包含 或「包含規則運算式」運算子,您可以選取多個值。

使用「包含規則運算式」運算子時,您可以建立一般 RE2 中的運算式 格式。規則運算式可與目標版本的所有或部分目標版本相符 字串。您也可以使用 ^$ 錨點,與 目標字串的開頭、結尾或完整內容。

版本編號 字串值:
完全符合、
包含、
不包含、
規則運算式

如果是數值:
=、≠、>、≥、<、≤

指定要指定的應用程式版本。

使用這個規則前,您必須使用「應用程式 ID」規則,選取與 Firebase 專案相關聯的 Apple 或 Android 應用程式。

這個運算子僅適用於 Apple 和 Android 應用程式。在 Apple 中,此值對應至應用程式的 CFBundleVersion;在 Android 中,則對應至 versionCode。這項規則的字串比較項目是 區分大小寫。

使用完全符合時,包含不包含 或「包含規則運算式」運算子,您可以選取多個值。

使用「contains regex」運算子時,您可以使用 RE2 格式建立規則運算式。規則運算式可以比對目標版本字串的全部或部分內容。您也可以使用 ^$ 錨點,與 目標字串的開頭、結尾或完整內容。

平台 == iOS
Android
網頁
 
作業系統 ==

指定要指定的作業系統。

使用這項規則前,您必須使用「應用程式 ID」規則來選取 與 Firebase 專案相關聯的網頁應用程式

如果作業系統及其版本與指定清單中的目標值相符,此規則會針對特定 Web 應用程式執行個體評估為 true
瀏覽器 ==

指定要指定的瀏覽器。

使用這項規則前,您必須使用「應用程式 ID」規則來選取 與 Firebase 專案相關聯的網頁應用程式

如果瀏覽器及其版本符合指定清單中的目標值,此規則會針對特定網頁應用程式執行個體評估為 true
裝置類別 is, is not 行動裝置 這項規則會評估存取網頁應用程式的裝置屬於行動裝置或 非行動裝置 (電腦或控制台)。此規則類型僅適用於網頁應用程式。
語言 位於 選取一或多種語言。 如果應用程式例項安裝在使用上述任一語言的裝置上,則此規則會將該例項評估為 true
國家/地區 位於 選取一或多個區域或國家/地區。 如果應用程式執行個體位於上述任一區域或國家/地區,系統就會將此規則評估為 true。裝置國家/地區代碼會根據要求中的裝置 IP 位址,或是 Firebase Analytics (如果 Analytics 資料已與 Firebase 共用) 決定的國家/地區代碼來判斷。
使用者目標對象 包括至少一個 從您為專案設定的 Google Analytics 目標對象清單中選取一或多個。

這項規則需要應用程式 ID 規則,才能選取與您的 Firebase 專案。

注意:許多 Analytics 目標對像是由事件或 用來衡量使用者屬性的情況 「目標對像中的使用者」規則的一段時間,才會對特定應用程式生效 執行個體。

使用者屬性 字串值:
包含、
不包含、
完全相符、
包含規則運算式

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

注意:在用戶端,您只能為使用者資源設定字串值。對於使用數值運算子的條件,Remote Config 會將對應使用者屬性的值轉換為整數/浮點數。
從可用的 Google Analytics 使用者清單中選取 資源。 如要瞭解如何運用使用者屬性自訂應用程式 使用者族群的區隔,例如 Remote Config 和使用者屬性

如要進一步瞭解使用者屬性,請參閱下列指南:

使用完全符合時,包含不包含 或「包含規則運算式」運算子時,您可以選取多個值。

使用「包含規則運算式」運算子時,您可以建立一般 RE2 中的運算式 格式。規則運算式可與目標版本的所有或部分目標版本相符 字串。您也可以使用 ^$ 錨點,比對目標字串的開頭、結尾或整個字串。

注意: 自動收集的使用者屬性 無法建立 Remote Config 條件。
隨機百分比中的使用者 滑桿 (位於 Firebase 控制台, REST API 使用 <=>between 運算子)。 0-100 TB

使用這個欄位,將變更套用到應用程式執行個體的隨機樣本 (樣本大小為小 (以 0 .0001% 為例),就可使用滑桿小工具將隨機重組的使用者 (應用程式執行個體) 區隔為 群組。

每個應用程式執行個體都會持續對應至隨機整數或分數,按照 種子

除非您在以下情況中,否則規則將使用預設金鑰 (Firebase 控制台中顯示為「編輯種子」) 會修改種子值如要讓規則使用預設鍵,請清除「Seed」欄位。

如要持續在指定百分比範圍內處理相同的應用程式執行個體,請在各條件中使用相同的種子值。或者,針對特定的指定應用程式,隨機選取一個新的應用程式執行個體群組 並指定新的種子值

舉例來說,如要建立兩個相關條件,分別套用至應用程式使用者的 5% (不重疊),您可以將一個條件設為比對 0% 到 5% 的百分比,另一個條件則設為比對 5% 到 10% 的範圍。允許部分使用者隨機出現在 兩個群組,為每個條件內的規則使用不同的種子值。

已匯入的區隔 位於 選取一或多個匯入的區隔。 這項規則需要設定自訂 匯入的區隔
日期/時間 前後對照 指定日期和時間,可使用裝置時區或指定時區 (例如「(GMT+11) 雪梨時間」)。 將目前時間與裝置擷取時間進行比較。
初次開啟 之前、之後 指定時區的指定日期和時間。

比對在指定特定範圍內初次開啟指定應用程式的使用者 時間範圍

需要下列 SDK:

  • Google Analytics 專用 Firebase SDK
  • Apple 平台 SDK 9.0.0 以上版本或 Android SDK 21.1.1 以上版本 (Firebase BoM 30.3.0 以上版本)
安裝 ID 位於 指定一或多個要指定的安裝 ID (最多 50 個)。 如果特定安裝 ID 位於以半形逗號分隔的值清單中,則此規則會將該安裝評估為 true

如要瞭解如何取得安裝 ID,請參閱「擷取用戶端 ID」一文。
使用者確實存在 (無運算子) 指定目前專案中所有應用程式的所有使用者。

請使用這項條件規則來比對專案內所有使用者,無論如何 應用程式或平台的五花八門

搜尋參數和條件

您可以搜尋專案的參數鍵、參數值和條件 使用 Firebase 控制台,使用 「參數」分頁頂端的搜尋框。Remote Config

參數和條件的限制

一項 Firebase 專案中最多可以有 2,000 個參數和 500 個 條件。參數鍵長度上限為 256 個字元,且必須以 底線或英文字母字元 (A-Z、a-z),也可以包含 數字。專案中參數值字串的總長度不得 超過 1,000,000 個字元

查看參數和條件的異動

您可以透過 Firebase 控制台查看 Remote Config 範本的最新變更。適用對象 您可以執行以下操作:

  • 查看上次修改參數或條件的使用者名稱。

  • 如果變更發生在同一天內,即可查看幾分鐘或 從變更發布至有效運作中狀態經過時數 Remote Config範本。

  • 如果變更發生在過去一或多天,請查看變更發布至有效 Remote Config 範本的日期。

參數變更記錄

Remote Config 參數 「上次發布時間」欄則會顯示上次修改新版本的使用者人數 參數和上次發布日期:

  • 如要查看已分組參數的變更中繼資料,請展開參數群組。

  • 如要依發布日期遞增或遞減排序,請按一下「上次發布」欄標籤。

條件變更記錄

Remote Config「條件」頁面中,您可以查看每個條件下方「上次修改」旁邊的資料,瞭解上次修改條件的使用者和修改日期。

後續步驟

如要設定 Firebase 專案和應用程式以使用 Remote Config,請參閱「開始使用 Firebase Remote Config」。