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

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

用於建立條件的元素

Remote Config REST API 支援的元素與您使用 Firebase 控制台設定 Remote Config 時,用於建立條件的元素相同:

元素 說明
&&

如果為條件使用多個元素,則可用於建立元素的邏輯「and」。如果在 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

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

app.browserAndVersion

根據執行應用程式的瀏覽器建立元素。如果瀏覽器和瀏覽器版本符合指定目標,則會評估為 TRUE

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

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) 建立元素。當裝置 OS 為預期類型時,會評估為 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 == 如果指定的值與應用程式的 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([...]) 如果 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 (如果 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