使用 Firebase 控制台或Remote Config 後端 API時,您可以定義一個或多個參數(鍵值對)並為這些參數提供應用程式內預設值。您可以透過定義伺服器端參數值來覆寫應用程式內預設值。參數鍵和參數值是字串,但當您在應用程式中使用這些值時,參數值可以轉換為其他資料類型。
使用 Firebase 控制台、 Admin SDK或Remote Config REST API ,您可以為參數建立新的預設值,以及用於定位應用程式實例組的條件值。每次您在 Firebase 控制台中更新配置時,Firebase 都會建立並發布新版本的遠端設定範本。先前的版本會被存儲,允許您根據需要檢索或回滾。您可以透過 Firebase 控制台、Firebase Admin SDK 和 REST API 進行這些操作,並在管理遠端設定範本版本中進行了更廣泛的描述。
本指南介紹了參數、條件、規則、條件值,以及如何在遠端設定伺服器和應用程式中確定各種參數值的優先權。它還提供了有關用於創建條件的規則類型的詳細資訊。
條件、規則和條件值
條件用於定位一組應用程式實例。條件由一個或多個規則組成,這些規則必須全部評估為true
,才能使給定應用程式實例的條件評估為true
。如果規則的值未定義(例如,當沒有可用值時),則該規則將計算為false
。
例如,定義應用程式啟動頁面的參數可以使用簡單規則if device_os = Android
根據作業系統類型顯示不同的映像:
或者,可以使用時間條件來控制應用程式何時顯示特殊促銷項目。
一個參數可以有多個使用不同條件的條件值,並且參數可以在專案內共用條件。在 Firebase 控制台的「參數」標籤中,您可以查看每個參數的條件值的提取百分比。此指標表示過去 24 小時內收到每個值的請求的百分比。
參數值優先權
一個參數可能有多個與其關聯的條件值。以下規則決定從遠端設定伺服器取得哪個值,以及在特定時間點在給定應用程式實例中使用哪個值:
根據以下優先列表取得伺服器端參數值
首先,如果有條件對於給定應用程式實例計算為
true
,則應用條件值。如果多個條件的計算結果為true
,則 Firebase 控制台 UI 中顯示的第一個(頂部)優先,並且當應用程式從後端取得值時,會提供與該條件關聯的條件值。您可以透過在「條件」標籤中拖放條件來變更條件的優先順序。如果不存在條件值為
true
條件值,則當應用程式從後端取得值時,將提供伺服器端預設值。如果後端中不存在參數,或預設值設為Use in-app default ,則應用取得值時不會為該參數提供任何值。
在您的應用程式中,參數值由get
方法根據以下優先列表傳回
- 如果從後端獲取值然後激活,則應用程式將使用獲取的值。啟動的參數值是持久的。
如果未從後端獲取任何值,或從遠端配置後端獲取的值尚未激活,則應用程式將使用應用程式內的預設值。
有關取得和設定預設值的更多信息,請參閱下載遠端配置範本預設值。
如果未設定應用程式內預設值,應用程式將使用靜態類型值(例如
0
表示int
,false
表示boolean
)。
下圖總結了遠端配置後端和應用程式中參數值的優先順序如何:
參數值資料類型
遠端配置可讓您為每個參數選擇資料類型,並在範本更新之前根據該類型驗證所有伺服器端值。資料類型在getRemoteConfig
請求中儲存和傳回。
目前支援的類型有:
-
String
-
Boolean
-
Number
-
JSON
在 Firebase 控制台 UI 中,可以從參數鍵旁的下拉式清單中選擇資料類型。在 REST API 中,可以使用參數物件中的value_type
欄位來設定類型。
參數組
遠端配置可讓您將參數分組在一起,以獲得更有組織的 UI 和心理模型。
例如,假設您在推出新的登入功能時需要啟用或停用三種不同的身份驗證類型。使用遠端配置,您可以建立三個參數來啟用所需的類型,然後將它們組織在名為「新登入」的群組中,無需添加前綴或特殊排序。
您可以使用 Firebase 控制台或遠端設定 REST API 建立參數群組。您建立的每個參數組在遠端配置範本中都有唯一的名稱。建立參數組時,請記住:
- 參數在任何時候只能包含在一組中,且參數鍵在所有參數中仍然必須是唯一的。
- 參數組名稱限制為 256 個字元。
- 如果您同時使用 REST API 和 Firebase 控制台,請確保更新所有 REST API 邏輯以在發佈時處理參數群組。
使用 Firebase 控制台建立或修改參數組
您可以在 Firebase 控制台的「參數」標籤中對參數進行分組。建立或修改群組:
- 選擇管理組。
- 選取要新增的參數的複選框,然後選擇移至群組。
- 選擇現有群組,或透過輸入名稱和說明並選擇建立新群組來建立新群組。儲存群組後,可以使用「發布變更」按鈕進行發布。
以程式設計方式建立群組
遠端配置 REST API提供了一種建立和發布參數組的自動化方法。假設您熟悉 REST 並設定為授權對 API 的請求,則可以執行下列步驟以程式設計方式管理群組:
- 檢索目前模板
- 新增 JSON 物件來表示您的參數組
- 使用 HTTP PUT 請求發布參數組。
parameterGroups
物件包含群組鍵、巢狀描述和分組參數清單。請注意,每個組密鑰必須是全域唯一的。
例如,以下是範本修訂版的摘錄,該修訂版新增了參數群組「新選單」和一個參數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 控制台支援下列規則類型。遠端配置 REST API 中提供了等效功能,如條件表達式參考中詳細介紹。
規則類型 | 操作員 | 值 | 筆記 |
---|---|---|---|
應用程式 | == | 從應用程式 ID 清單中選擇與您的 Firebase 項目關聯的應用程式。 | 將應用程式新增至 Firebase 時,您需要輸入捆綁包 ID 或 Android 程式包名稱,該名稱定義在遠端設定規則中作為應用程式 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 。此規則的字串比較區分大小寫。 使用完全符合、包含、不包含或正規表示式運算子時,您可以選擇多個值。 使用正規表示式運算子時,您可以建立RE2格式的正規表示式。您的正規表示式可以符合全部或部分目標版本字串。您也可以使用^和$錨點來匹配目標字串的開頭、結尾或整個。 |
平台 | == | iOS系統 安卓 網路 | |
作業系統 | == | 指定要定位的作業系統。 在使用此規則之前,您必須使用套用 ID規則來選擇與您的 Firebase 項目關聯的Web 應用程式。 | 如果作業系統及其版本與指定清單中的目標值匹配,則對於給定 Web 應用程式實例,此規則的計算結果為true 。 |
瀏覽器 | == | 指定要定位的瀏覽器。 在使用此規則之前,您必須使用套用 ID規則來選擇與您的 Firebase 項目關聯的Web 應用程式。 | 如果瀏覽器及其版本與指定清單中的目標值匹配,則對於給定 Web 應用程式實例,此規則的計算結果為true 。 |
設備類別 | 是,不是 | 移動的 | 此規則評估存取您的 Web 應用程式的裝置是行動裝置還是非行動裝置(桌面裝置或控制台)。此規則類型僅適用於 Web 應用程式。 |
語言 | 是在 | 選擇一種或多種語言。 | 如果給定應用程式實例安裝在使用所列語言之一的裝置上,則該規則的計算結果為true 。 |
國家/地區 | 是在 | 選擇一個或多個地區或國家。 | 如果給定應用程式實例位於列出的任何區域或國家/地區,則此規則的計算結果為true 。設備國家代碼是使用請求中設備的 IP 位址或由 Firebase Analytics 確定的國家代碼確定的(如果 Analytics 資料與 Firebase 共用)。 |
使用者受眾 | 至少包括一項 | 從您為專案設定的 Google Analytics(分析)受眾群體清單中選擇一個或多個。 | 此規則需要套用 ID 規則來選擇與您的 Firebase 專案關聯的應用程式。 注意:由於許多 Analytics 受眾群體是透過事件或使用者屬性定義的,這些事件或使用者屬性可以基於應用程式使用者的操作,因此受眾群體中的使用者規則可能需要一些時間才能對給定應用程式實例生效。 |
使用者屬性 | 對於字串值: 包含, 不含, 完全匹配, 正規表示式 對於數值: =、≠、>、≥、<、≤ 注意:在客戶端上,您只能設定使用者屬性的字串值。對於使用數位運算子的條件,遠端配置會將對應使用者屬性的值轉換為整數/浮點型。 | 從可用的 Google Analytics 使用者屬性清單中進行選擇。 | 若要了解如何使用使用者屬性為使用者群的特定部分自訂應用程序,請參閱遠端配置和使用者屬性。 要了解有關用戶屬性的更多信息,請參閱以下指南: 當使用完全符合、包含、不包含或正規表示式運算子時,您可以選擇多個值。 使用正規表示式運算子時,您可以建立RE2格式的正規表示式。您的正規表示式可以符合全部或部分目標版本字串。您也可以使用^和$錨點來匹配目標字串的開頭、結尾或整個。 注意:建立遠端配置條件時,自動收集的使用者屬性目前不可用。 |
使用者的隨機百分比 | 滑桿(在 Firebase 控制台中。REST API使用<= 、 > 和運算子between 符號)。 | 0-100 | 使用此欄位可將變更套用至應用程式實例的隨機樣本(樣本大小小至 0.0001%),並使用滑桿小工具將隨機打亂的使用者(應用程式實例)分組。 根據該項目中定義的種子,每個應用程式實例都會永久對應到隨機整數或小數。 除非您修改種子值,否則規則將使用預設金鑰(在 Firebase 控制台中顯示為「編輯種子」)。您可以透過清除「種子」欄位將規則還原為使用預設金鑰。 若要一致地處理給定百分比範圍內的相同應用程式實例,請在不同條件下使用相同的種子值。或者,透過指定新的種子,為給定的百分比範圍選擇一組新的隨機分配的應用程式實例。 例如,要建立兩個相關條件,分別套用於應用程式使用者中不重疊的5%,您可以將一個條件配置為符合0% 到5% 之間的百分比,並將另一個條件配置為符合5%到 5% 之間的範圍。10%。若要允許某些使用者隨機出現在兩組中,請為每個條件中的規則使用不同的種子值。 | 進口段 | 是在 | 選擇一個或多個導入的片段。 | 此規則需要設定自訂匯入段。 |
約會時間 | 之前、之後 | 指定的日期和時間,可以是設備時區,也可以是指定時區,例如「(GMT+11) 雪梨時間」。 | 將目前時間與設備取得時間進行比較。 |
首次開放 | 之前、之後 | 指定時區的指定日期和時間。 | 符合在指定時間範圍內首次開啟目標應用程式的使用者。 需要以下 SDK:
|
安裝ID | 是在 | 指定一個或多個要定位的安裝 ID(最多 50 個)。 | 如果給定安裝的 ID 位於逗號分隔的值清單中,則該規則的計算結果為true 。若要了解如何取得安裝 ID,請參閱檢索用戶端識別碼。 |
用戶存在 | (無操作員) | 定位目前專案中所有應用程式的所有使用者。 | 使用此條件規則來匹配專案內的所有用戶,無論應用程式或平台如何。 |
搜尋參數和條件
您可以使用「遠端設定參數」標籤頂部的搜尋方塊從Firebase 控制台搜尋項目的參數鍵、參數值和條件。
參數和條件的限制
在 Firebase 專案中,您最多可以有 2000 個參數和 500 個條件。參數鍵的長度最多為 256 個字符,必須以下劃線或英文字母字符(AZ、az)開頭,還可以包含數字。項目內參數值字串的總長度不能超過 1,000,000 個字元。
查看參數和條件的更改
您可以從Firebase 控制台查看遠端設定範本的最新變更。對於每個單獨的參數和條件,您可以:
查看最後修改參數或條件的使用者的名稱。
如果變更發生在同一天內,請查看自變更發佈到活動遠端設定範本以來經過的分鐘數或小時數。
如果變更發生在過去一天或多天,請查看變更發佈到活動遠端設定範本的日期。
參數更新
在「遠端設定參數」頁面上, 「上次發布」欄位顯示上次修改每個參數的使用者以及變更的上次發布日期:
若要查看分組參數的變更元數據,請展開參數組。
若要按發布日期升序或降序排序,請按一下「上次發布」列標籤。
狀況更新
在「遠端設定條件」頁面上,您可以在每個條件下方的「上次修改時間」旁看到上次修改條件的使用者以及修改日期。
下一步
若要開始設定 Firebase 項目,請參閱設定 Firebase 遠端設定項目。