伺服器範本中的遠端設定參數和條件

選取範本類型: 用戶端範本 伺服器範本


您可以將伺服器專用範本中的 Remote Config 參數和值,提供給使用下列伺服器環境的 Remote Config 實作項目 (包括 Cloud Run 和 Cloud Functions for Firebase):

  • Firebase Admin Node.js SDK 12.1.0 以上版本
  • Firebase Admin Python SDK 6.7.0 以上版本
  • Firebase Admin Go SDK v4.17.0 以上版本
  • Firebase Admin Java SDK 9.7.0 以上版本

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

您可以使用 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 控制台中,依序前往「DevOps & Engagement」>「遠端設定」>「參數」頁面,查看各參數條件值的擷取百分比。這項指標代表過去 24 小時內,收到各個值的要求百分比。

使用 Firebase 控制台新增、編輯、重新排序或刪除條件

您可以在 Firebase 控制台中建立、編輯、重新排序及刪除指定條件。專案中的參數會共用條件。以下說明如何管理條件:

  1. 在 Firebase 控制台中,依序前往「DevOps & Engagement」 >「遠端設定」 >「Conditions」頁面 (或在「Parameters」頁面中選取「Manage conditions」)。
  2. 新增條件:按一下「Add condition」(新增條件) (或「Create your first condition」(建立第一個條件)),輸入定義指定目標的名稱,然後選取一或多個指定規則。
  3. 編輯條件:按一下條件名稱或編輯圖示,視需要修改規則,然後按一下「儲存」。
  4. 變更條件優先順序:在「Conditions」(條件) 頁面上,拖曳條件的抓取控點即可重新排序。清單中較高的條件優先於較低的條件。
  5. 刪除條件:按一下要移除的條件旁的刪除圖示。如果條件由任何參數參照,移除條件也會一併移除相關聯的條件值。

儲存條件變更後,請使用「Publish changes」(發布變更) 發布範本。

IPv6 限制與 IP 存取控管

搭配使用 IP 型存取政策時,Remote Config 對 IPv6 的支援有限。如果貴組織限制存取特定公開 IP 範圍,透過 IPv6 網路連線可能會導致下列問題:

  • 控制台存取權:您可能無法使用 Firebase 控制台中的特定 Remote Config 功能,例如載入資料或設定指定目標。
  • 用戶端存取權:用戶端應用程式可能會發生 PERMISSION_DENIED 錯誤。

為避免發生這些問題,請將網路設為使用 IPv4,或將必要的 Firebase IP 範圍加入貴組織的許可清單。

參數值優先順序

在伺服器應用程式中,使用 Firebase Admin SDK 搭配 Remote Config 時,您會擷取並載入整個範本,以便根據每個用戶端要求,隨選擷取適當的參數值。一個參數可能有多個相關聯的條件值。

下列規則會決定在特定時間點評估範本時,系統會指派哪個值:

  1. 首先,系統會針對特定用戶端要求中評估為 true 的任何條件,套用條件值。如果有多個條件評估為 true,系統會優先採用 Firebase 控制台 UI 中顯示的最上方條件,並在評估範本時提供與該條件相關聯的條件值。如要變更條件的優先順序,請在「Conditions」(條件) 頁面中拖放條件。

  2. 如果沒有任何條件值的條件評估結果為 true, 系統會在範本評估期間提供 Remote Config 的預設值。 如果範本中沒有某個參數,或預設值設為「Use in-app default」(使用應用程式內預設值),則評估範本時不會提供該參數的值。

如要進一步瞭解如何在伺服器應用程式中載入及評估 Remote Config 範本,請參閱「在伺服器環境中使用 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 控制台中將參數分組。建立或修改群組的方法如下:

  1. 在 Firebase 控制台中,依序前往「DevOps & Engagement」 >「遠端設定」 >「Parameters」(參數) 頁面。
  2. 選取「管理群組」。
  3. 勾選要新增的參數,然後選取「Move to group」(移至群組)。
  4. 選取現有群組,或輸入名稱和說明,然後選取「Create new group」(建立新群組),建立新群組。儲存群組後,您可以使用「Publish changes」(發布變更) 按鈕發布群組。

條件規則類型

伺服器應用程式的 Remote Config 範本支援下列條件類型:

隨機百分比中的使用者

使用這個欄位,將變更套用至隨機抽樣的應用程式執行個體 (樣本大小可小至 .0001%),並使用滑桿小工具將隨機排列的使用者 (應用程式執行個體) 分成多個群組。

系統會根據該專案中定義的種子,將每個應用程式執行個體持續對應至隨機整數或分數。

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

如要在指定百分比範圍內,持續指定相同的應用程式執行個體,請在不同條件中使用相同的種子值。或者,您也可以指定新的種子,為特定百分比範圍選取一組隨機指派的新應用程式執行個體。

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

如要瞭解如何在應用程式中新增隨機百分比條件,請參閱「設定伺服器應用程式」。

自訂信號條件

您可以使用「自訂信號」條件值,比對應用程式中定義的任意條件。這可讓您根據每個用戶端要求,量身打造伺服器回應。下列伺服器環境版本支援自訂信號條件:

  • Firebase Admin Node.js SDK 12.1.0 以上版本
  • Firebase Admin Python SDK 6.7.0 以上版本
  • Firebase Admin Go SDK v4.17.0 以上版本
  • Firebase Admin Java SDK 9.7.0 以上版本

舉例來說,如果您正在開發伺服器應用程式,使用生成式 AI 協助製作回應,並針對特定平台調整不同模型,可以採取下列做法:

  1. 在 Remote Config 伺服器範本中加入 prompt 和 model_name 參數。
  2. 為每個要指定的平台,新增值為 platform 的自訂信號條件。
  3. 在伺服器專屬的 Remote Config 範本中新增預設值,並為定義的每個平台條件新增條件值。
  4. 更新應用程式程式碼,設定並使用 platform 自訂信號。

現在,應用程式可以在範本評估期間擷取適當的提示和模型,並使用這些提示和模型向每位用戶端傳回自訂回覆。

您可以使用下列規則類型,在 Firebase 控制台中建立自訂信號條件。

運算子類別 運算子 值
文字 完全比對、包含、不包含、包含規則運算式

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

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

Numbers <、<=、=、!=、>、>= 小數點前後最多 10 位數。
版本 <、<=、=、!=、>、>= 代表要比對的版本號碼 (例如 2.1.0)。

如要瞭解如何在應用程式中加入自訂信號,請參閱「設定伺服器應用程式」。

搜尋參數和條件

如要搜尋專案的參數鍵、參數值和條件,請前往 Firebase 控制台,依序點選「DevOps & Engagement」>「遠端設定」>「參數」,然後使用頁面頂端的搜尋框。

參數和條件限制

在 Firebase 專案中,最多可有 3,000 個參數和 2,000 個條件。參數鍵長度上限為 256 個半形字元,開頭必須是底線或英文字母 (A 至 Z、a 至 z),其他部分則可使用數字。專案中參數值字串的總長度不得超過 1,000,000 個字元。此外,根據使用者屬性設定的條件規則,最多可包含 100 個使用者屬性值。如需完整的限制清單,請參閱「配額與限制」。

查看參數和條件的變更

您可以透過Firebase控制台查看 Remote Config 範本的最新變更。您可以對個別參數和條件執行下列操作:

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

  • 如果變更發生在當天,請查看變更發布到有效 Remote Config 範本後經過的分鐘數或小時數。

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

參數變更記錄

在 Firebase 控制台中,依序前往「DevOps & Engagement」 >「遠端設定」 >「Parameters」(參數) 頁面。「上次發布」欄會顯示上次修改各參數的使用者,以及變更的上次發布日期:

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

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

條件變更記錄

在 Firebase 控制台中,依序前往「DevOps & Engagement」 >「遠端設定」 >「Conditions」(條件) 頁面。在每個條件下方的「上次修改時間」旁,您可以看到上次修改條件的使用者和修改日期。

後續步驟

如要設定 Firebase 專案和伺服器應用程式,以便使用 Remote Config,請參閱「在伺服器環境中使用 Remote Config」。