您可以為用戶端和伺服器用途設定範本。用戶端範本會提供給任何實作 Remote Config 專用 Firebase 用戶端 SDK 的應用程式,包括 Android、Apple、Web、Unity、Flutter 和 C++ 應用程式。來自伺服器專屬範本的 Remote Config 參數和值,會提供給使用 Firebase Admin Node.js SDK 12.1.0 以上版本的 Remote Config 實作項目 (包括 Cloud Run 和 Cloud Functions)。
使用 Firebase 控制台或 Remote Config 後端 API 時,您需要定義一或多個參數 (鍵/值組合),並為這些參數提供應用程式內的預設值。您可以定義參數值,藉此覆寫應用程式內的預設值。參數鍵和參數值都是字串,但在應用程式中使用這些值時,參數值可以轉換為其他資料類型。
您可以使用 Firebase 主控台、Admin SDK 或 Remote 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 範本擷取哪個值,以及在特定時間點,哪個值會用於特定應用程式執行個體:
首先,系統會針對特定用戶端要求,針對任何評估為
true
的條件套用條件值。如果多項條件的評估結果皆為true
,Firebase 控制台 UI 中顯示的第一個 (最上方) 條件會優先採用,且應用程式從後端擷取值時,系統會提供與該條件相關聯的條件式值。您可以變更條件的優先順序,方法是在「條件」分頁中拖曳條件。如果沒有任何條件值包含會得出
true
的條件,系統會在應用程式從後端擷取值時提供 Remote Config 的預設值。如果後端不存在參數,或是預設值設為「使用應用程式內預設值」,則應用程式擷取值時,系統不會為該參數提供任何值。
在應用程式中,get
方法會根據以下優先順序清單傳回參數值
- 如果從後端擷取值並啟用,應用程式會使用擷取的值。已啟用的參數值會持續存在。
如果未從後端擷取任何值,或是從 Remote Config 後端擷取的值未啟用,應用程式會使用應用程式內的預設值。
如要進一步瞭解如何取得及設定預設值,請參閱「下載 Remote Config 範本預設值」。
如果未設定應用程式內的預設值,應用程式會使用靜態類型值 (例如
0
代表int
,false
代表boolean
)。
下圖概略說明 Remote Config 後端和應用程式中參數值的優先順序:
參數值資料類型
Remote Config 可讓您為每個參數選取資料類型,並在範本更新前,根據該類型驗證所有 Remote Config 值。資料類型會儲存在 getRemoteConfig
要求中,並在該要求中傳回。
支援的資料類型如下:
String
Boolean
Number
JSON
在 Firebase 控制台 UI 中,您可以從參數鍵旁的下拉式選單中選取資料類型。在 REST API 中,您可以使用參數物件中的 value_type
欄位設定類型。
參數群組
Remote Config 可讓您將參數分組,以便提供更有條理的使用者介面,並提升可用性。
舉例來說,您需要在推出新的登入功能時,啟用或停用三種不同的驗證類型。使用 Remote Config 時,您可以建立三個參數來啟用所需類型,然後將這些參數整理到名為「New login」的群組中,而不需要新增前置字元或特殊排序。
您可以使用 Firebase 控制台或 Remote Config REST API 建立參數群組。您建立的每個參數群組在 Remote Config 範本中都有專屬名稱。建立參數群組時,請注意下列事項:
- 參數一次只能加到一個群組,且所有參數的參數鍵不得重複。
- 參數群組名稱長度不得超過 256 個半形字元。
- 如果您同時使用 REST API 和 Firebase 控制台,請務必更新所有 REST API 邏輯,以便在發布時處理參數群組。
使用 Firebase 控制台建立或修改參數群組
您可以在 Firebase 控制台的「參數」分頁中將參數分組。如要建立或修改群組,請按照下列步驟操作:
- 選取「管理群組」。
- 勾選要新增的參數核取方塊,然後選取「移動至群組」。
- 選取現有群組,或輸入名稱和說明,然後選取「建立新群組」來建立新群組。儲存群組後,您可以使用「發布變更」按鈕發布群組。
條件規則類型
Firebase 控制台支援下列規則類型。Remote Config REST API 提供等效功能,詳情請參閱條件式運算式參考資料。
規則類型 | 運算子 | 值 | 注意事項 |
應用程式 | == | 從與 Firebase 專案相關聯的應用程式 ID 清單中選取。 | 將應用程式新增至 Firebase 時,您會輸入軟體包 ID 或 Android 套件名稱,藉此定義在 Remote Config 規則中顯示為「App ID」的屬性。 請按照下列方式使用這項屬性:
|
應用程式版本 |
字串值: 完全相符、 包含、 不包含、 包含規則運算式 數值: <, <=, =, !=, >, >= |
指定要指定的應用程式版本。 使用這個規則前,您必須使用「應用程式 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 專案相關聯的「網路應用程式」。 |
如果作業系統及其版本與指定清單中的目標值相符,這項規則就會針對特定網頁應用程式執行個體評估為 true 。 |
瀏覽器 | == |
指定要指定的瀏覽器。 使用這個規則前,您必須使用「應用程式 ID」規則,選取與 Firebase 專案相關聯的「網路應用程式」。 |
如果瀏覽器及其版本與指定清單中的目標值相符,這項規則就會針對特定網頁應用程式執行個體評估為 true 。 |
裝置類別 | 是、不是 | 行動裝置 | 這項規則會評估存取網頁應用程式的裝置是行動裝置或非行動裝置 (電腦或主機)。這個規則類型僅適用於網頁應用程式。 |
語言 | 位於 | 選取一或多種語言。 | 如果應用程式例項是在使用上述任一語言的裝置上安裝,則此規則會將該例項評估為 true 。 |
國家/地區 | 位於 | 選取一或多個區域或國家/地區。 | 如果應用程式執行個體位於上述任一區域或國家/地區,系統就會將此規則評估為 true 。裝置國家/地區代碼是由要求中的裝置 IP 位址,或是 Firebase Analytics (如果 Analytics 資料已與 Firebase 共用) 決定的國家/地區代碼決定。 |
使用者目標對象 | 包括至少一個 | 從您為專案設定的 Google Analytics 目標對象清單中選取一或多個。 | 這項規則需要應用程式 ID 規則,才能選取與 Firebase 專案相關聯的應用程式。 注意:由於許多 Analytics 目標對象都是由事件或使用者屬性定義,而這些屬性可根據應用程式使用者的動作,因此「目標對象中的使用者」規則可能需要一段時間才會對特定應用程式執行個體生效。 |
使用者屬性 |
字串值:
包含、 不包含、 完全相符、 包含規則運算式 數值: =、≠、>、≥、<、≤ 注意:在用戶端,您只能為使用者屬性設定字串值。 對於使用數值運算子的條件,Remote Config 會將對應使用者屬性的值轉換為整數/浮點數。 |
從可用的 Google Analytics 使用者屬性清單中選取。 | 如要瞭解如何使用使用者屬性,針對使用者族群的特定區隔自訂應用程式,請參閱「
Remote Config 和使用者屬性」一文。 如要進一步瞭解使用者屬性,請參閱下列指南: 使用「完全符合」、「包含」、「不包含」或「包含規則運算式」運算子時,您可以選取多個值。 使用「contains regex」運算子時,您可以使用 RE2 格式建立規則運算式。規則運算式可與所有或部分目標版本字串相符。您也可以使用 ^ 和 $ 錨點來比對目標字串的開始、結束或整個設定。 注意:建立 Remote Config 條件時,無法使用自動收集的使用者屬性。 |
隨機百分比中的使用者 | 滑桿 (在 Firebase 控制台中)。REST API 會使用 <= 、> 和 between 運算子。 |
0-100 TB |
使用這個欄位將變更套用至應用程式執行個體的隨機樣本 (樣本大小為 0.0001% 的大小),並使用滑桿小工具將隨機重組的使用者 (應用程式執行個體) 區隔為群組。 根據專案中定義的種子,每個應用程式執行個體都會持續對應至隨機整數或小數。 除非您修改了種子值,否則規則會使用預設鍵 (在 Firebase 控制台中顯示為「Edit seed」)。如要讓規則使用預設鍵,請清除「Seed」欄位。 如要在指定百分比範圍內持續處理相同的應用程式執行個體,請在所有條件中使用相同的種子值。或者,您也可以指定新的種子,為特定百分比範圍選取一組隨機指派的應用程式執行個體。 舉例來說,如要建立兩個相關條件,分別套用至應用程式 5% 的使用者 (不重疊),您可以將一個條件設為比對 0% 到 5% 的百分比,另一個條件則設為比對 5% 到 10% 的範圍。如要讓部分使用者隨機出現在兩個群組中,請為每個條件中的規則使用不同的種子值。 |
已匯入的區隔 | 位於 | 選取一或多個匯入的區隔。 | 您必須設定自訂匯入的區隔,才能使用這項規則。 |
日期/時間 | 前後對照 | 指定日期和時間,可使用裝置時區或指定時區 (例如「(GMT+11) 雪梨時間」)。 | 比較目前時間與裝置擷取時間。 |
初次開啟 | 前後對照 | 指定時區的指定日期和時間。 | 比對在指定時間範圍內初次開啟指定應用程式的使用者。 需要下列 SDK:
|
安裝 ID | 位於 | 指定一或多個要指定的安裝 ID (最多 50 個)。 | 如果指定安裝項目的 ID 位於以半形逗號分隔的值清單中,則此規則會將該安裝項目評估為 true 。如要瞭解如何取得安裝 ID,請參閱「 擷取用戶端 ID」一文。 |
使用者確實存在 | (無運算子) | 指定目前專案中所有應用程式的所有使用者。 |
無論應用程式或平台為何,您都可以使用這項條件規則比對專案中的所有使用者。 |
搜尋參數和條件
您可以使用 Remote Config「參數」分頁頂端的搜尋方塊,在 Firebase 控制台中搜尋專案的參數鍵、參數值和條件。
參數和條件的限制
在 Firebase 專案中,您最多可以使用 2000 個參數和 500 個條件。參數鍵長度上限為 256 個半形字元,開頭必須是底線或英文字母字元 (A-Z、a-z),其他部分則可使用數字。專案中參數值字串的總長度不得超過 1,000,000 個字元。
查看參數和條件的變更
您可以透過 Firebase 控制台查看 Remote Config 範本的最新變更。針對每個個別參數和條件,您可以:
查看上次修改參數或條件的使用者名稱。
如果變更發生在同一天內,請查看從變更發布至有效 Remote Config 範本後經過的分鐘數或時數。
如果變更發生在過去一或多天,請查看變更發布至有效 Remote Config 範本的日期。
參數變更記錄
在 Remote Config「參數」頁面中,「上次發布時間」欄則會顯示上次修改每個參數的使用者,以及變更的上次發布日期:
如要查看已分組參數的變更中繼資料,請展開參數群組。
如要依照發布日期遞增或遞減排序,請按一下「Lastpublish」(上次發布時間) 資料欄標籤。
條件變更記錄
在 Remote Config「Conditions」(條件) 頁面中,您可以在每個條件的「Lastmodify」(上次修改日期) 旁,查看上次修改條件的使用者和修改日期。