Catch up on everthing we announced at this year's Firebase Summit. Learn more

遠程配置條件表達式參考

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

用於創造條件的元素

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

元素描述
&&

如果對一個條件使用多個元素,則用於創建元素的邏輯“與”。如果一個元素在REST語法使用而不&&時,該元素將被視為一個條件。

注:前後&符號後所需的空間。例如: element1 && element2

app.build

計算結果為TRUEFALSE基於應用程序的版本號的值。

注:僅適用於蘋果和Android設備。對於蘋果而言,使用的價值CFBundleVersion和Android的,使用的值的versionCode

app.version

計算結果為TRUEFALSE基於應用程序的版本號的值。

注:對於Android設備使用的值的versionName ,並為蘋果設備使用的值CFBundleShortVersionString

app.id基於應用的 Firebase App ID 的元素
app.audiences中的一個元件TRUEFALSE基於用戶的一個或多個存在或不存在火力地堡分析目標對象
app.predictionScores.id一個元素,用於評估給定 Firebase 預測 ID 的調用者用戶百分位概率。
app.userProperty中的一個元件TRUEFALSE基於一個的數值或字符串值火力地堡分析用戶屬性
app.operatingSystemAndVersion

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

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

app.browserAndVersion

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

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

app.firebaseInstallationId基於特定設備安裝 ID 的元素。評估為TRUE時,安裝ID匹配指定的安裝ID中的一個。
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時,該設備的OS是預期的類型。
percent評估為TRUE基於用戶在隨機分配的分數百分共融(樣品尺寸小0.000001%)。

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

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

支持的運營商

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

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

app.audiences .notInAtLeastOne([...])返回TRUE如果實際觀眾並不在列表中匹配至少一個觀眾的名字。
app.audiences .inAll([...])返回TRUE如果實際觀眾列表中每名觀眾中的一員。
app.audiences .notInAll([...])返回TRUE如果實際觀眾不在列表中的任何觀眾中的一員。
app.predictionScores.id .between(..., ...)返回TRUE如果主叫者的用戶百分比概率預測是在給定的範圍內。
例如:

app.predictionScores.id('churn').between(0.25, 1.00)

app.userProperty <<= ==!=>=>返回TRUE如果實際用戶屬性的數值進行比較,以在操作者相匹配的方式指定的值。
app.userProperty .contains([...])返回TRUE如果任何目標值的是實際的用戶屬性的子字符串。
app.userProperty .notContains([...])返回TRUE如果沒有目標值的是實際的用戶屬性的子字符串。
app.userProperty .exactlyMatches([...])返回TRUE如果實際用戶屬性完全匹配(區分大小寫)列表中的任何目標值。
app.userProperty .matches([...])返回TRUE ,如果列表中的任何目標的正則表達式的子串,或整個實際價值相匹配。要強制匹配整個字符串,請在正則表達式前添加“^”並添加後綴“$”。採用RE2語法。
app.id ==返回TRUE如果指定的值的應用程序的App ID相匹配。
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 [...]返回TRUE如果安裝ID匹配任何列表中指定。示例用法: 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 <= >返回TRUE ,如果在值percent字段進行比較,以該隨機分配操作者匹配的值。