遠端配置條件表達式參考

此頁麵包含有關使用遠端設定後端 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.firstOpenTimestamp基於使用者首次啟動應用程式的元素,從 Google Analytics first_open事件取得。使用 ISO 日期格式,並可選擇指定固定時區;例如, app.firstOpenTimestamp >= ('2022-10-31T14:37:47', 'America/Los_Angeles') 。如果未指定時區,則使用 GMT。
app.userProperty根據 Firebase Analytics 使用者屬性 的數字或字串值評估為TRUEFALSE的元素
app.operatingSystemAndVersion

基於運行應用程式的作業系統的元素。當作業系統和作業系統版本與指定目標相符時,評估結果為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 。例如,如果實際應用版本為 123 或 492 app.version.notContains([123, 456])傳回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