遠端設定參數和條件

您可以設定用戶端和伺服器用途的範本。凡是實作用於遠端設定 Firebase 用戶端 SDK 的應用程式執行個體 (包括 Android、Apple、Web、Unity、Flutter 和 C++ 應用程式),都會提供用戶端範本。系統會將來自伺服器專屬範本的遠端設定參數和值提供給使用 Firebase Admin Node.js SDK v12.1.0 以上版本的遠端設定實作項目 (包括 Cloud Run 和 Cloud Functions)。

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

您可以使用 Firebase 控制台、Admin SDKRemote Config REST API,為參數建立新的預設值,以及用來指定應用程式執行個體群組的條件值。每次在 Firebase 控制台中更新設定時,Firebase 都會建立並發布新版的遠端設定範本。系統會儲存先前的版本,方便您視需要擷取或復原。您可以透過 Firebase 控制台、Firebase Admin SDK 和 REST API 使用這些作業。如要進一步瞭解這些作業,請參閱管理遠端設定範本版本

本指南將說明參數、條件、規則、條件值,以及遠端設定伺服器與應用程式中各種參數值的優先順序,同時也詳細說明用於建立條件的規則類型。

條件、規則和條件值

條件用來指定一組應用程式執行個體。條件是由一或多項規則組成,這些規則必須全部評估為 true,系統才會針對特定應用程式例項評估為 true 的條件。如果規則的值未定義 (例如沒有可用的值),該項規則會評估為 false

舉例來說,定義應用程式啟動頁面的參數,可以使用簡單的規則 if device_os = Android,根據 OS 類型顯示不同的圖片:

Firebase 控制台中的「splash_page」參數螢幕截圖顯示 iOS 的預設值和 Android 條件式值

也可以使用時間條件,控制應用程式顯示特殊促銷商品的時機。

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

參數值優先順序

參數可能包含數個相關聯的條件式值,下列規則可決定要從遠端設定伺服器擷取哪一個值,以及在特定時間點的特定應用程式執行個體中要使用哪個值:

系統會根據下列優先順序清單擷取參數值

  1. 首先,如有任何條件為特定應用程式執行個體評估為 true 的條件,系統就會套用條件值。如果多項條件評估為 true,系統會優先採用 Firebase 控制台 UI 中顯示的第一個 (頂端) 條件,並在應用程式從後端擷取值時,提供與該條件相關聯的條件值。您可以在「Conditions」分頁中拖曳條件來拖曳條件,藉此變更條件的優先順序。

  2. 如果沒有條件值具有可評估為 true 的條件,當應用程式從後端擷取值時,會提供遠端設定的預設值。如果後端沒有參數,或是預設值設為「Use-app default」,則當應用程式擷取值時,系統不會為該參數提供任何值。

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

  1. 如果從後端擷取一個值然後啟用,應用程式會使用擷取的值。已啟用的參數值具有永久性。
  2. 如果無法從後端擷取任何值,或者尚未啟用從遠端設定後端擷取的值,應用程式會使用應用程式內預設值。

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

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

此圖片概述瞭如何在遠端設定後端與應用程式中,參數值的優先順序:

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

參數值資料類型

遠端設定可讓您為每個參數選取資料類型,並在更新範本前驗證該類型的所有遠端設定值。資料類型會透過 getRemoteConfig 要求儲存及傳回。

目前支援的類型如下:

  • String
  • Boolean
  • Number
  • JSON

在 Firebase 控制台使用者介面中,您可以從參數鍵旁邊的下拉式選單中選取資料類型。在 REST API 中,您可以使用參數物件內的 value_type 欄位進行設定。

參數群組

遠端設定可讓您將參數分組,打造更井然有序的 UI 和心理模型。

舉例來說,假設您需要在推出新的登入功能時,啟用或停用三種不同的驗證類型。透過遠端設定,您可以建立三個參數來啟用所需類型,然後將這些類型整理在名為「New login」的群組,無需新增前置字串或特殊排序。

您可以使用 Firebase 控制台或 Remote Config REST API 建立參數群組。在遠端設定範本中,您建立的每個參數群組都有專屬名稱。建立參數群組時,請注意下列事項:

  • 參數一次只能納入一個群組,且所有參數中的參數鍵都不得重複。
  • 參數群組名稱的長度不得超過 256 個字元。
  • 如果您同時使用 REST API 和 Firebase 控制台,請確認所有 REST API 邏輯皆已更新,以便在發布時處理參數群組。

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

您可以在 Firebase 控制台的「Parameters」分頁中將參數分組。如何建立或修改群組:

  1. 選取「管理群組」
  2. 找到要新增的參數,勾選旁邊的核取方塊,然後選取「移至群組」
  3. 選取現有群組,或是輸入名稱和說明來建立新群組,然後選取「Create new group」。在您儲存群組後,即可使用「發布變更」按鈕發布群組。

透過程式輔助方式建立群組

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 控制台支援以下規則類型。Remote Config REST API 提供對等的功能,如條件運算式參考資料中所述。

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

請使用此屬性:
  • 如果是 Apple 平台:使用應用程式的 CFBundleIdentifier。您可以在 Xcode 的應用程式主要目標的「General」分頁中找到「Bundle Identifier」
  • Android 裝置:請使用應用程式的 applicationId。您可以在應用程式層級的 build.gradle 檔案中找到 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 專案相關聯的網頁應用程式

如果作業系統及其版本符合指定清單的目標值,這項規則就會評估指定網頁應用程式執行個體的 true
瀏覽者 ==

指定要指定的瀏覽器。

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

如果瀏覽器及其版本符合指定清單的目標值,這項規則就會評估特定網頁應用程式例項的 true
裝置類別 是,不是 行動 這項規則會評估存取您網頁應用程式的裝置是否為行動裝置或非行動裝置 (電腦或主控台)。這個規則類型僅適用於網頁應用程式。
語言 位於 選取一或多個語言。 如果特定應用程式執行個體的安裝裝置使用列出的其中一種語言,這項規則會評估特定應用程式執行個體的 true
國家/地區 位於 選取一或多個區域或國家/地區。 如果執行個體位於所列的任一地區或國家/地區,這項規則會評估特定應用程式執行個體的 true。裝置國家/地區代碼取決於要求中的裝置 IP 位址,或是 Firebase Analytics 決定的國家/地區代碼 (如果 Analytics (分析) 資料會與 Firebase 共用)。
使用者目標對象 包括至少一個 從您為專案設定的 Google Analytics (分析) 目標對象清單中,選取一或多項。

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

注意:許多 Analytics (分析) 目標對像是由事件或使用者屬性定義,這些屬性可能會依據應用程式使用者的動作,因此可能需要一段時間,「目標對像中的使用者」規則才會在特定應用程式執行個體生效。

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

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

注意:在用戶端中,您只能設定使用者屬性的字串值。針對使用數字運算子的條件,遠端設定會將對應使用者屬性的值轉換成整數/浮點值。
從可用的 Google Analytics (分析) 使用者屬性清單中選取。 如要瞭解如何利用使用者屬性,針對特定使用者族群自訂應用程式,請參閱「 遠端設定和使用者屬性」。

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

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

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

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

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

根據專案中定義的「種子」,每個應用程式執行個體都會永久對應到隨機整數或分數值。

除非您修改種子值,否則規則會使用預設鍵 (在 Firebase 控制台中會顯示為「編輯種子」)。您可以清除「Seed」欄位,傳回使用預設鍵的規則。

如要持續處理指定百分比範圍內的相同應用程式執行個體,請在所有條件中使用相同的種子值。或者,指定新的種子,在指定百分比範圍內隨機指派新的應用程式執行個體群組。

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

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

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

需要下列 SDK:

  • Google Analytics (分析) 專用 Firebase SDK
  • Apple 平台 SDK 9.0.0 以上版本或 Android SDK v21.1.1 以上版本 (Firebase BoM 30.3.0 以上版本)

安裝 ID 位於 請指定一或多個安裝 ID (最多 50 個)。 如果安裝作業的 ID 位於以逗號分隔的值清單中,這項規則就會評估指定安裝作業的 true

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

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

搜尋參數和條件

Firebase 控制台使用「遠端設定參數」分頁頂端的搜尋框,即可搜尋專案的參數鍵、參數值和條件。

參數和條件的限制

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

查看參數和條件的變更

您可以透過 Firebase 主控台查看遠端設定範本的最新變更。針對個別參數和條件,您可以:

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

  • 如果變更在同一天內發生,請檢視自變更發布至有效遠端設定範本後經過的分鐘數或時數。

  • 如果變更在過去一或多天發生,請檢視變更發布至有效遠端設定範本的日期。

參數更新

在遠端設定的「參數」頁面上,「上次發布」資料欄會顯示上次修改每個參數的使用者,以及變更的上次發布日期:

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

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

狀況更新

在遠端設定的「Conditions」頁面上,您可以在每個條件下方的「上次修改日期」旁邊,查看上次修改條件的使用者和修改日期。

後續步驟

如要開始設定 Firebase 專案,請參閱「設定 Firebase 遠端設定專案」一文。