Catch up on highlights from Firebase at Google I/O 2023. Learn more

遠程配置條件表達式參考

此頁麵包含使用遠程配置後端 API 或 Firebase 控制台構建條件表達式的參考信息。有關設置和使用後端 API 的更多信息,請參閱以編程方式修改遠程配置

用於創造條件的元素

Remote Config REST API 支持在使用 Firebase 控制台配置 Remote Config 時可用於創建條件的相同元素:

元素描述
&&

如果對一個條件使用多個元素,則用於創建元素的邏輯“與”。如果在沒有&&的情況下在 REST 語法中使用元素,則該元素將被視為條件。

注意: &符號前後需要一個空格。例如: element1 && element2

app.build

根據應用程序內部版本號的值評估為TRUEFALSE

注意:僅適用於 Apple 和 Android 設備。對於 Apple,使用CFBundleVersion的值,對於 Android,使用versionCode的值。

app.version

根據應用版本號的值評估為TRUEFALSE

注意: Android 設備使用versionName的值,Apple 設備使用CFBundleShortVersionString的值。

app.id基於應用的 Firebase 應用 ID 的元素
app.audiences根據用戶在一個或多個Firebase Analytics 受眾中的存在或不存在評估為TRUEFALSE的元素。
app.firstOpenTimestamp基於用戶首次啟動應用程序的元素,從 Google Analytics first_open事件中獲取。使用 ISO 日期格式和指定固定時區的選項;例如, app.firstOpenTimestamp >= ('2022-10-31T14:37:47', 'America/Los_Angeles') 。如果未指定時區,則使用 GMT。
app.userProperty根據 Firebase Analytics User Property 的數字或字符串值評估為TRUEFALSE的元素
app.operatingSystemAndVersion

基於運行應用程序的操作系統的元素。當 OS 和 OS 版本與指定目標匹配時,計算結果為TRUE

注意:僅適用於 Web 應用程序。

app.browserAndVersion

基於運行應用程序的瀏覽器的元素。當瀏覽器和瀏覽器版本與指定目標匹配時,計算結果為TRUE

注意:僅適用於 Web 應用程序。

app.firebaseInstallationId基於特定設備安裝 ID 的元素。當安裝 ID與指定的安裝 ID 之一匹配時,計算結果為TRUE
device.country基於設備所在地區/國家/地區的元素,使用 ISO 3166-1 alpha-2 標準(例如,美國或英國)。當某個國家/地區與預期的國家/地區代碼匹配時,評估為TRUE
device.dateTime基於設備執行的最後一次提取時間的元素。使用 ISO 日期格式和指定固定時區的選項;例如, dateTime('2017-03-22T13:39:44', 'America/Los_Angeles')
device.language基於在設備上選擇的語言的元素。語言使用 IETF 語言標籤表示,例如 es-ES、pt-BR 或 en-US。當一種語言與預期的語言代碼匹配時,計算結果為TRUE
device.os基於設備上使用的操作系統(Apple 或 Android)的元素。當設備操作系統是預期類型時,計算結果為TRUE
percent根據用戶包含在隨機分配的小數百分比(樣本量小至 0.000001%)中評估為TRUE

單元素條件包含三個字段:

  1. 任意定義的name (最多 100 個字符)
  2. 計算結果為TRUEFALSE條件表達式,由上面顯示的元素組成。
  3. (可選) tagColor ,可以是“ BLUE ”、“ BROWN ”、“ CYAN ”、“ DEEP_ORANGE ”、“ GREEN ”、“ INDIGO ”、“ LIME ”、“ ORANGE ”、“ PINK ”、“ PURPLE ”或“ TEAL ”。顏色不區分大小寫,僅影響條件在 Firebase 控制台中的顯示方式。

支持的運營商

例如,如果實際應用程序版本為 123 或 492 app.build.notContains([123, 456])返回TRUE ,但如果實際應用程序版本為 999,則返回FALSE 。例如, app.version.notContains([123, 456])如果實際應用版本為 123 或 492,則返回TRUE ,如果實際應用版本為 999,則返回FALSE
元素支持的運營商描述
app.audiences .inAtLeastOne([...])如果實際受眾與列表中的至少一個受眾名稱匹配,則返回TRUE
例如:

app.audiences.inAtLeastOne(['Audience 1', 'Audience 2'])

app.audiences .notInAtLeastOne([...])如果實際受眾與列表中的至少一個受眾名稱不匹配,則返回TRUE
app.audiences .inAll([...])如果實際受眾是列表中每個受眾名稱的成員,則返回TRUE
app.audiences .notInAll([...])如果實際受眾不是列表中任何受眾的成員,則返回TRUE
app.firstOpenTimestamp <=, >first_open事件的時間與條件中的指定時間進行比較,並根據運算符返回TRUEFALSE
示例用法:
app.firstOpenTimestamp >= ('2022-10-31T14:37:47', 'America/Los_Angeles')
要指定一個範圍:
app.firstOpenTimestamp >= ('2022-11-01T00:00:00') && app.firstOpenTimestamp < ('2022-12-01T00:00:00')如果未指定時區,則使用 GMT。
app.userProperty < , <= , == , != , >= , >如果實際用戶屬性在數值上與以匹配運算符的方式指定的值進行比較,則返回TRUE
app.userProperty .contains([...])如果任何目標值是實際用戶屬性的子字符串,則返回TRUE
app.userProperty .notContains([...])如果沒有目標值是實際用戶屬性的子字符串,則返回TRUE
app.userProperty .exactlyMatches([...])如果實際用戶屬性與列表中的任何目標值完全匹配(區分大小寫),則返回TRUE
app.userProperty .matches([...])如果列表中的任何目標正則表達式與實際值的子字符串或整個實際值匹配,則返回TRUE 。要強制匹配整個字符串,請在正則表達式前加上“^”並在其後綴上添加“$”。使用RE2語法。
app.id ==如果指定的值與應用程序的應用程序 ID 匹配,則返回TRUE
app.build < , <= , == , != , >= , >如果實際應用程序構建在數值上與以匹配運算符的方式指定的值進行比較,則返回TRUE
app.build .contains([...])如果任何目標值是實際應用構建的子字符串,則返回TRUE例如,“a”和“bc”是“abc”的子字符串。
app.build .notContains([...])如果沒有目標值是實際應用程序構建的子字符串,則返回TRUE
app.build .exactlyMatches([...])如果實際應用構建與列表中的任何目標值完全匹配,則返回TRUE
app.build .matches([...])如果列表中的任何目標正則表達式與實際值的子字符串或整個實際值匹配,則返回TRUE 。要強制匹配整個字符串,請在正則表達式前加上“^”並在其後綴上添加“$”。使用RE2語法。
app.version < , <= , == , != , >= , >如果實際應用程序版本在數字上與以匹配運算符的方式指定的值進行比較,則返回TRUE
app.version .contains([...])如果任何目標值是實際應用程序版本的子字符串,則返回TRUE例如,“a”和“bc”是“abc”的子字符串。
app.version .notContains([...])如果沒有目標值是實際應用程序版本的子字符串,則返回TRUE
app.version .exactlyMatches([...])如果實際應用程序版本與列表中的任何目標值完全匹配,則返回TRUE
app.version .matches([...])如果列表中的任何目標正則表達式與實際值的子字符串或整個實際值匹配,則返回TRUE 。要強制匹配整個字符串,請在正則表達式前加上“^”並在其後綴上添加“$”。使用RE2語法。
app.operatingSystemAndVersion .inOne([...])如果操作系統和版本與列表中的任何目標值匹配,則返回TRUE
例如:

    app.operatingSystemAndVersion.inOne([operatingSystemName('Macintosh').version.==('10.15')])
    

app.browserAndVersion .inOne([...])如果瀏覽器和版本與列表中的任何目標值匹配,則返回TRUE
例如:

    app.browserAndVersion.inOne([browserName('Chrome').anyVersion])
    

app.firebaseInstallationId in [...]如果安裝 ID 與列表中指定的任何匹配,則返回TRUE 。示例用法: app.firebaseInstallationId in ['eyJhbGciOiJFUzI1N_iIs5', 'eapzYQai_g8flVQyfKoGs7']
device.country in [...]如果設備的國家與列表中指定的任何國家相匹配,則返回TRUE 。用法示例: device.country in ['gb', 'us'] 。設備國家代碼是使用請求中的設備 IP 地址或 Firebase Analytics 確定的國家代碼確定的(如果 Analytics 數據與 Firebase 共享)。
device.dateTime <= , >將當前時間與條件的目標時間進行比較,並根據運算符評估為TRUEFALSE 。示例用法: dateTime < dateTime('2017-03-22T13:39:44')
device.language in [...]如果應用程序的任何語言與列表中的語言匹配,則返回TRUE 。用法示例: device.language in ['en-UK', 'en-US']
device.os == , !=如果設備的操作系統與該字段中匹配運算符的值進行比較,則返回TRUE
percent <= , > , between如果percent字段中的值與隨機分配的匹配運算符的值相比較,則返回TRUE

您可以指定一個種子來為給定的百分比範圍選擇一組隨機分配的新應用程序實例,如條件規則類型中所述。

為此,請在運算符之前提供種子的名稱,如以下示例所示:

percent('keyName') <= 10

要配置特定範圍,您可以使用between運算符。使用默認種子配置 20 到 60 之間的用戶範圍:

percent between 20 and 60

使用自定義種子配置 60 到 80 歲之間的用戶範圍:

percent('seedName') between 60 and 80