本頁提供參考資訊,說明如何使用 Remote Config 後端 API 或 Firebase 控制台建構條件運算式。如要進一步瞭解如何設定及使用後端 API,請參閱「透過程式輔助方式修改遠端設定」。
用於建立條件的元素
Remote Config REST API 支援的元素,與您在 Firebase 控制台設定 Remote Config 時可用來建立條件的元素相同:
| 元素 | 說明 |
|---|---|
&& |
如果條件使用多個元素,則用於建立元素的邏輯「and」。如果在 REST 語法中使用元素,但沒有 注意:和號前後必須加上空格。例如: |
app.build |
根據應用程式版本號碼的值,評估為 注意:僅適用於 Apple 和 Android 裝置。如果是 Apple,請使用 CFBundleVersion 的值;如果是 Android,請使用 versionCode 的值。 |
app.version |
根據應用程式版本號碼的值,評估為 注意:Android 裝置請使用 versionName 的值,Apple 裝置則使用 CFBundleShortVersionString 的值。 |
app.id |
根據應用程式 Firebase 應用程式 ID 建立的元素 |
app.audiences |
根據使用者是否在一或多個 Firebase Analytics 目標對象中,評估為 TRUE 或 FALSE 的元素。 |
app.firstOpenTimestamp |
根據使用者首次啟動應用程式的時間,從 Google Analytics first_open 事件取得的元素。使用 ISO 日期格式,並可選擇指定固定時區,例如 app.firstOpenTimestamp >= ('2022-10-31T14:37:47', 'America/Los_Angeles')。如未指定時區,則會使用格林威治標準時間。 |
app.userProperty |
根據Google Analytics使用者屬性的數值或字串值,評估為 TRUE 或 FALSE 的元素。 |
app.operatingSystemAndVersion |
根據應用程式執行的作業系統而定的元素。如果 OS 和 OS 版本與指定目標相符,則評估為 注意:僅適用於網頁應用程式。 |
app.browserAndVersion |
根據執行應用程式的瀏覽器,建立元素。
如果瀏覽器和瀏覽器版本與指定目標相符,則評估為 注意:僅適用於網頁應用程式。 |
app.firebaseInstallationId |
根據特定裝置安裝 ID 建立的元素。
如果安裝 ID 與其中一個指定的安裝 ID 相符,則評估為 TRUE。 |
app.customSignal |
根據自訂信號條件的數值、語意或字串值,評估為 TRUE 或 FALSE 的元素。 |
device.country |
根據裝置所在區域/國家/地區,使用 ISO 3166-1 alpha-2 標準 (例如 US 或 UK) 的元素。如果國家/地區與預期的國家/地區代碼相符,則評估結果為 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。 |
單一元素條件包含三個欄位:
- 任意定義的
name(最多 100 個字元) - 由上表所示元素組成的條件運算式,可評估為
TRUE或FALSE。 - (選用)
tagColor,可以是「BLUE」、「BROWN」、「CYAN」、「DEEP_ORANGE」、「GREEN」、「INDIGO」、「LIME」、「ORANGE」、「PINK」、「PURPLE」或「TEAL」。顏色不區分大小寫,且只會影響條件在 Firebase 控制台中的顯示方式。
支援的運算子
| 元素 | 支援的運算子 | 說明 |
|---|---|---|
app.audiences |
.inAtLeastOne([...]) |
如果實際目標對象與清單中至少一個目標對象名稱相符,則傳回 app.audiences.inAtLeastOne(['Audience 1', 'Audience 2']) |
app.audiences |
.notInAtLeastOne([...]) |
如果實際目標對象與清單中至少一個目標對象名稱不符,則傳回 |
app.audiences |
.inAll([...]) |
如果實際目標對象是清單中每個目標對象名稱的成員,則傳回 |
app.audiences |
.notInAll([...]) |
如果實際目標對象不屬於清單中的任何目標對象,則傳回 |
app.firstOpenTimestamp |
<=, > |
比較 |
app.userProperty |
<、<=、==、!=、>=、> |
如果實際使用者屬性與指定值的數值比較結果符合運算子,則傳回 |
app.userProperty |
.contains([...]) |
如果任何目標值是實際使用者屬性的子字串,則傳回 |
app.userProperty |
.notContains([...]) |
如果沒有任何目標值是實際使用者屬性的子字串,則傳回 |
app.userProperty |
.exactlyMatches([...]) |
如果實際使用者屬性與清單中的任何目標值完全相符 (區分大小寫),則傳回 |
app.userProperty |
.matches([...]) |
如果清單中的「任何」目標規則運算式與實際值的子字串或整個實際值相符,則傳回 |
app.id |
== |
如果指定的值與應用程式 ID 相符,則傳回 |
app.build |
<、<=、==、!=、>=、> |
如果實際應用程式版本與指定值的數值比較結果符合運算子,則傳回 |
app.build |
.contains([...]) |
如果任何目標值是實際應用程式建構作業的子字串,則傳回 |
app.build |
.notContains([...]) |
如果沒有任何目標值是實際應用程式建構作業的子字串,則傳回 |
app.build |
.exactlyMatches([...]) |
如果實際應用程式版本與清單中的「任何」目標值完全相符,則傳回 |
app.build |
.matches([...]) |
如果清單中的「任何」目標規則運算式與實際值的子字串或整個實際值相符,則傳回 |
app.version |
<、<=、==、!=、>=、> |
如果實際應用程式版本與指定值的數值比較結果符合運算子,則傳回 注意:數值比較運算子僅支援數值語意版本 (例如 |
app.version |
.contains([...]) |
如果任何目標值是實際應用程式版本的子字串,則傳回 |
app.version |
.notContains([...]) |
如果沒有任何目標值是實際應用程式版本的子字串,則傳回 |
app.version |
.exactlyMatches([...]) |
如果實際應用程式版本與清單中的「任何」目標值完全相符,則傳回 |
app.version |
.matches([...]) |
如果清單中的「任何」目標規則運算式與實際值的子字串或整個實際值相符,則傳回 |
app.operatingSystemAndVersion |
.inOne([...]) |
如果 OS 和版本與清單中的「任何」目標值相符,則傳回 app.operatingSystemAndVersion.inOne([operatingSystemName('Macintosh')
.version.==('10.15')]) |
app.browserAndVersion |
.inOne([...]) |
如果瀏覽器和版本與清單中的「任何」目標值相符,則傳回 app.browserAndVersion.inOne([browserName('Chrome').anyVersion]) |
app.firebaseInstallationId |
in [...] |
如果安裝 ID 與清單中指定的任何 ID 相符,則傳回 |
app.customSignal |
<、<=、==、!=、>=、> |
如果自訂信號條件與指定值的數值比較結果符合運算子,則傳回 |
app.customSignal |
.contains([...]) |
如果任何目標值是實際自訂信號條件的子字串,則傳回 |
app.customSignal |
.notContains([...]) |
如果任何目標值是實際自訂信號條件的子字串,則傳回 |
app.customSignal |
.exactlyMatches([...]) |
如果實際的自訂信號條件與清單中的任何目標值完全比對 (區分大小寫),則傳回 |
app.customSignal |
.matches([...]) |
如果清單中的任何目標規則運算式與實際自訂信號條件的子字串或整個字串相符,則傳回 |
version(app.customSignal) |
<、<=、==、!=、>=、> |
如果自訂信號條件與指定值的語意比較結果符合運算子,則傳回 |
device.country |
in [...] |
如果裝置的國家/地區與清單中指定的任何國家/地區相符,則傳回 |
device.dateTime |
<=、> |
比較目前時間與條件的目標時間,並根據運算子評估為 |
device.language |
in [...] |
如果應用程式的任何語言與清單中的語言相符,則傳回 |
device.os |
==、!= |
如果裝置的作業系統與該欄位中符合運算子的值相符,則傳回 TRUE。 |
percent |
<=、>、between |
如果 您可以指定種子,為指定百分比範圍選取一組新的隨機指派應用程式執行個體,如「條件規則類型」一節所述。 方法是在運算子前方提供種子名稱,如以下範例所示: percent('keyName') <= 10如要設定特定範圍,可以使用 percent between 20 and 60 如要使用自訂種子設定 60 到 80 之間的使用者範圍,請按照下列步驟操作: percent('seedName') between 60 and 80 |