Check out what’s new from Firebase at Google I/O 2022. Learn more

遠程配置條件表達式參考

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

用於創造條件的元素

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

元素描述
&&

如果一個條件使用多個元素,則用於創建元素的邏輯“與”。如果一個元素在沒有&&的 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.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.userProperty < , <= , == , != , >= , >如果實際用戶屬性在數值上與以匹配運算符的方式指定的值進行比較,則返回TRUE
app.userProperty .contains([...])如果任何目標值是實際用戶屬性的子字符串,則返回TRUE
app.userProperty .notContains([...])如果沒有一個目標值是實際用戶屬性的子字符串,則返回TRUE
app.userProperty .exactlyMatches([...])如果實際用戶屬性與列表中的任何目標值完全匹配(區分大小寫),則返回TRUE
app.userProperty .matches([...])如果列表中的任何目標正則表達式與實際值的子字符串或整個實際值匹配,則返回TRUE 。要強制匹配整個字符串,請在正則表達式前面加上“^”,並在後面加上“$”。使用RE2語法。
app.id ==如果指定的值與應用的 App 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 <= , >如果percent字段中的值與隨機分配的與運算符匹配的值相比較,則返回TRUE