遠端設定條件運算式參考資料

本頁面提供參考資訊,說明如何使用 Remote Config 後端 API 或 Firebase 主控台建構條件式運算式。適用對象 如要進一步瞭解如何設定及使用後端 API,請參閱 透過程式修改遠端設定

用來建立條件的元素

Remote Config REST API 支援可使用的元素 建立條件時Remote Config Firebase 控制台:

元素 說明
&&

如果為條件使用多個元素,則可用於建立元素的邏輯「and」。如果不使用 && ,該元素會視為條件。

注意:連接號前後必須加上空格。例如: element1 && element2

app.build

根據應用程式版本編號的值,評估為 TRUEFALSE

注意:這項功能僅適用於 Apple 和 Android 裝置。如果是 Apple,請使用 CFBundleVersion 的值;如果是 Android,請使用 versionCode 的值。

app.version

根據應用程式的版本號碼值評估 TRUEFALSE

注意:如果是 Android 裝置,請使用 versionName 的值, 如果是 Apple 裝置,則使用 CFBundleShortVersionString 值。

app.id 以應用程式的 Firebase 應用程式 ID 為準的元素
app.audiences 評估為 TRUEFALSE 的元素 使用者的所在地 Firebase Analytics 目標對象
app.firstOpenTimestamp 根據使用者首次啟動應用程式而得出的元素,其來源為 Google Analytics first_open 事件。使用 ISO 日期 格式以及指定固定時區的選項;例如 app.firstOpenTimestamp >= ('2022-10-31T14:37:47', 'America/Los_Angeles')。 如果沒有指定時區,就會使用 GMT。
app.userProperty 評估為 TRUEFALSE 的元素 產生 Firebase Analytics 使用者屬性
app.operatingSystemAndVersion

根據應用程式執行的作業系統而定。OS 和 OS 版本與指定版本相符時,對 TRUE 進行評估 目標。

注意:僅適用於網頁應用程式。

app.browserAndVersion

這個元素取決於執行應用程式的瀏覽器。 評估 TRUE瀏覽器和瀏覽器版本符合 指定目標。

注意:僅適用於網頁應用程式。

app.firebaseInstallationId 以特定裝置安裝的 ID 為依據的元素。 當安裝 ID 與指定的安裝 ID 相符時,會評估為 TRUE
device.country 以裝置所在地/國家/地區為基準的元素, 符合 ISO 3166-1 alpha-2 標準 (例如 US 或英國)。評估依據 如果國家/地區與應有的國家/地區代碼相符,則傳回 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) 設計的元素。 評估裝置 OS 是預期類型時,評估 TRUE
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.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 list 會比對來自實際值的子字串或整個實際值。如要強制比對整個字串,請在規則運算式前面加上「^」,並在後面加上「$」。使用 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([...]) 如果 OS 和版本符合清單中的任何目標值,則傳回 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 (如果已與 Firebase 共用 Analytics 資料)。
device.dateTime <=> 比較目前時間 至條件的目標時間,然後評估為 TRUE 或 依據運算子為 FALSE。使用範例: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 運算子。如要使用 default 種子

percent between 20 and 60

如要使用自訂種子設定介於 60 到 80 之間的使用者範圍,請按照下列步驟操作:

percent('seedName') between 60 and 80