遠端設定參數和條件


您可以為用戶端和伺服器用途設定範本。凡是導入 Firebase 用戶端 SDK 的應用程式例項 (包括 Android、Apple、Web、Unity、Flutter 和 C++ 應用程式),都會收到用戶端範本。Remote Config系統會將伺服器專屬範本中的 Remote Config 參數和值,提供給使用下列伺服器環境的 Remote Config 實作項目 (包括 Cloud Run 和 Cloud Functions):

  • Firebase Admin Node.js SDK 12.1.0 以上版本
  • Firebase Admin Python SDK 6.7.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) 的模型名稱和版本字串,並根據自訂信號規則,從不同模型提供回覆。在這個用途中,您可能會使用穩定版模型做為預設值,處理大多數要求,並使用自訂信號,以實驗模型回覆測試用戶端要求。

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

參數值優先順序

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

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

  2. 如果沒有條件評估結果為 true 的條件值,應用程式從後端擷取值時,系統會提供 Remote Config 的預設值。如果後端沒有參數,或預設值設為「使用應用程式內預設值」,應用程式擷取值時,系統不會提供該參數的值。

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

  1. 如果從後端擷取值並啟用,應用程式會使用擷取的值。啟用的參數值會持續存在。
  2. 如果系統未從後端擷取任何值,或從後端擷取的值尚未啟用,應用程式會使用應用程式內預設值。Remote Config

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

  3. 如果未設定應用程式內預設值,應用程式會使用靜態類型值 (例如 int0booleanfalse)。

下圖摘要說明 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 規則中顯示為「應用程式 ID」

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

數值:
<、<=、=、!=、>、>=

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

使用這項規則前,請先使用「應用程式 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。這項規則的字串比較會區分大小寫。

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

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

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

指定要鎖定的作業系統。

使用這項規則前,請先使用「應用程式 ID」規則,選取與 Firebase 專案相關聯的網路應用程式

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

指定要鎖定的瀏覽器。

使用這項規則前,請先使用「應用程式 ID」規則,選取與 Firebase 專案相關聯的網路應用程式

如果瀏覽器及其版本符合指定清單中的目標值,這項規則會針對特定網頁應用程式執行個體評估為 true
裝置類別 是、不是 行動裝置 這項規則會評估存取您網頁應用程式的裝置是行動裝置還是非行動裝置 (電腦或遊戲機)。這類規則僅適用於網路應用程式。
語言 位於 選取一或多種語言。 如果特定應用程式執行個體安裝在採用所列語言的裝置上,這項規則就會評估為 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% 的範圍。如要讓部分使用者隨機出現在兩個群組中,請為每個條件中的規則使用不同的種子值。

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

在指定時間範圍內初次開啟目標應用程式的使用者。

需要下列 SDK:

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

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

使用這項條件規則,即可比對專案中的所有使用者,無論應用程式或平台為何。

自訂信號 字串值:
包含、
不包含、
完全相符、
包含規則運算式

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

版本值:
=、≠、>、≥、<、≤

這項規則的字串比較會區分大小寫。使用「完全比對」、「包含」、「不包含」或「包含規則運算式」運算子時,可以選取多個值。使用 contains regex 運算子時,您可以建立 RE2 格式的規則運算式。規則運算式可以比對目標版本字串的全部或部分內容。您也可以使用 ^ 和 $ 錨點,比對目標字串的開頭、結尾或全部內容。

用戶端環境支援的資料類型如下:
  • iOS:int、double
  • Android:int、long、double
  • 網站:數字

代表要比對的版本號碼 (例如 2.1.0) 的數字。

如要進一步瞭解自訂信號條件和可使用的條件運算式,請參閱「自訂信號條件」和「用於建立條件的元素」。

搜尋參數和條件

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

參數和條件的限制

在 Firebase 專案中,最多可有 2000 個參數和 500 個條件。參數鍵長度上限為 256 個字元,開頭必須是底線或英文字母字元 (A 至 Z、a 至 z),其他部分則可使用數字。專案中參數值字串的總長度不得超過 1,000,000 個字元。

查看參數和條件的變更

如要查看Remote Config範本的最新變更,請前往 Firebase控制台。您可以對每個參數和條件執行下列操作:

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

  • 如果變更發生在同一天,請查看自發布變更至有效Remote Config範本以來經過的分鐘數或時數。

  • 如果變更發生在一天以上前,請查看變更發布至有效 Remote Config 範本的日期。

參數的變更記錄

在「參數」Remote Config 頁面中,「上次發布」欄會顯示上次修改各參數的使用者,以及變更的上次發布日期:

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

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

條件的變更記錄

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

後續步驟

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