Referensi ekspresi kondisional Remote Config

Halaman ini berisi informasi referensi untuk membuat ekspresi kondisional menggunakan API backend Remote Config atau Firebase console. Untuk mengetahui informasi selengkapnya tentang cara menyiapkan dan menggunakan API backend, baca artikel Mengubah Remote Config secara terprogram.

Elemen yang digunakan untuk membuat kondisi

REST API Remote Config mendukung elemen yang sama dengan yang dapat Anda gunakan untuk membuat kondisi saat mengonfigurasi Remote Config menggunakan Firebase Console:

Elemen Deskripsi
&&

Digunakan untuk membuat elemen logika "and" jika menggunakan lebih dari satu elemen untuk sebuah kondisi. Jika sebuah elemen digunakan dalam sintaks REST tanpa && , elemen tersebut akan diperlakukan sebagai kondisi.

Catatan: sebuah spasi perlu diselipkan ke sebelum dan sesudah ampersand. Contoh: element1 && element2.

app.build

Bernilai TRUE atau FALSE berdasarkan nilai nomor build aplikasi.

Catatan: Hanya tersedia di perangkat Apple dan Android. Untuk Apple, gunakan nilai CFBundleVersion dan untuk Android, gunakan nilai versionCode.

app.version

Bernilai TRUE atau FALSE berdasarkan nilai nomor versi aplikasi.

Catatan: Untuk perangkat Android, gunakan nilai versionName, dan untuk perangkat Apple, gunakan nilai CFBundleShortVersionString.

app.id Elemen yang didasarkan pada Firebase App ID aplikasi
app.audiences Elemen yang bernilai TRUE atau FALSE berdasarkan kehadiran atau ketidakhadiran pengguna pada satu atau beberapa audience Firebase Analytics.
app.firstOpenTimestamp Elemen yang didasarkan pada kali pertama pengguna meluncurkan aplikasi, yang diperoleh dari peristiwa first_open Google Analytics. Elemen ini menggunakan format tanggal ISO dengan opsi untuk menentukan zona waktu tetap; misalnya, app.firstOpenTimestamp >= ('2022-10-31T14:37:47', 'America/Los_Angeles'). Jika zona waktu tidak ditentukan, GMT akan digunakan.
app.userProperty Elemen yang bernilai TRUE atau FALSE berdasarkan nilai numerik atau string dari Properti Pengguna Firebase Analytics.
app.operatingSystemAndVersion

Elemen yang didasarkan pada sistem operasi tempat aplikasi berjalan. Bernilai TRUE jika OS dan versi OS-nya cocok dengan target yang ditentukan.

Catatan: Hanya tersedia untuk aplikasi Web.

app.browserAndVersion

Elemen yang didasarkan pada browser tempat aplikasi berjalan. Bernilai TRUE jika browser dan versi browsernya cocok dengan target yang ditentukan.

Catatan: Hanya tersedia untuk aplikasi Web.

app.firebaseInstallationId Elemen yang didasarkan pada ID penginstalan perangkat tertentu. Bernilai TRUE jika ID penginstalan cocok dengan salah satu ID penginstalan yang ditentukan.
device.country Elemen yang didasarkan pada wilayah/negara tempat perangkat berada, dengan menggunakan standar ISO 3166-1 alpha-2 (misalnya, US atau UK). Bernilai TRUE ketika sebuah negara cocok dengan kode negara yang diharapkan.
device.dateTime Elemen yang didasarkan pada waktu pengambilan terakhir yang dilakukan perangkat. Elemen ini menggunakan format tanggal ISO dengan opsi untuk menentukan zona waktu tetap; misalnya, dateTime('2017-03-22T13:39:44', 'America/Los_Angeles').
device.language Elemen yang didasarkan pada bahasa yang dipilih pada perangkat. Bahasa direpresentasikan dengan tag Bahasa IETF seperti es-ES, pt-BR, atau en-US. Bernilai TRUE ketika sebuah bahasa cocok dengan kode bahasa yang diharapkan.
device.os Elemen yang didasarkan pada sistem operasi yang digunakan pada perangkat (Apple atau Android). Bernilai TRUE ketika jenis OS perangkat sesuai dengan yang diharapkan.
percent Bernilai TRUE berdasarkan keikutsertaan pengguna dalam persentase fraksional yang ditetapkan secara acak (dengan ukuran sampel hingga sekecil 0,000001%).

Suatu kondisi berelemen tunggal terdiri dari tiga kolom:

  1. name yang bisa ditetapkan secara sembarang (maksimal 100 karakter)
  2. Ekspresi kondisional yang bernilai TRUE atau FALSE, terdiri dari elemen yang ditunjukkan di atas.
  3. (Opsional) tagColor, yang dapat berupa "BLUE", "BROWN", "CYAN", "DEEP_ORANGE", "GREEN", "INDIGO", "LIME", "ORANGE", "PINK", "PURPLE", atau "TEAL". Tulisan warna tidak peka huruf besar/kecil dan hanya memengaruhi tampilan kondisi di Firebase console.

Operator yang didukung

Misalnya, app.build.notContains([123, 456]) menampilkan TRUE jika build aplikasi sebenarnya adalah 123 atau 492, tetapi akan menampilkan FALSE jika build aplikasi sebenarnya adalah 999. Misalnya, app.version.notContains([123, 456]) menampilkan TRUE jika versi aplikasi sebenarnya adalah 123 atau 492, tetapi akan menampilkan FALSE jika versi aplikasi sebenarnya adalah 999.
Elemen Operator yang didukung Deskripsi
app.audiences .inAtLeastOne([...]) Menampilkan TRUE jika audience sebenarnya cocok dengan minimal satu nama audience dalam daftar.
Contoh:

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

app.audiences .notInAtLeastOne([...]) Menampilkan TRUE jika audience sebenarnya tidak cocok dengan satu pun nama audience dalam daftar.
app.audiences .inAll([...]) Menampilkan TRUE jika audience sebenarnya adalah anggota dari setiap nama audience dalam daftar.
app.audiences .notInAll([...]) Menampilkan TRUE jika audience sebenarnya bukanlah anggota audience mana pun dalam daftar.
app.firstOpenTimestamp <=, > Membandingkan waktu peristiwa first_open dengan waktu yang ditentukan dalam kondisi dan menampilkan TRUE atau FALSE berdasarkan operator.
Contoh penggunaan:
app.firstOpenTimestamp >= ('2022-10-31T14:37:47', 'America/Los_Angeles').
Untuk menentukan rentang:
app.firstOpenTimestamp >= ('2022-11-01T00:00:00') && app.firstOpenTimestamp < ('2022-12-01T00:00:00') Jika zona waktu tidak ditentukan, GMT akan digunakan.
app.userProperty <, <=, ==, !=, >=, > Menampilkan TRUE jika properti pengguna sebenarnya cocok secara numerik dengan nilai yang ditentukan agar sama dengan operator.
app.userProperty .contains([...]) Menampilkan TRUE jika salah satu dari nilai target adalah substring dari properti pengguna sebenarnya.
app.userProperty .notContains([...]) Menampilkan TRUE jika tidak satu pun dari nilai target merupakan substring dari properti pengguna sebenarnya.
app.userProperty .exactlyMatches([...]) Menampilkan TRUE jika properti pengguna sebenarnya sama persis (peka huruf besar/kecil) dengan nilai target mana pun di dalam daftar.
app.userProperty .matches([...]) Menampilkan TRUE jika ada ekspresi reguler target mana pun di dalam daftar yang cocok dengan substring dari, atau keseluruhan, nilai sebenarnya. Untuk memaksakan pencocokan seluruh string, tuliskan ekspresi reguler dengan awalan "^" dan akhiran "$". Menggunakan sintaks RE2.
app.id == Menampilkan TRUE jika nilai yang ditentukan sesuai dengan ID Aplikasi dari aplikasi.
app.build <, <=, ==, !=, >=, > Menampilkan TRUE jika build aplikasi sebenarnya cocok secara numerik dengan nilai yang ditentukan agar sama dengan operator.
app.build .contains([...]) Menampilkan TRUE jika salah satu nilai target adalah substring dari build aplikasi yang sebenarnya, misalnya "a" dan "bc" adalah substring dari "abc".
app.build .notContains([...]) Menampilkan TRUE jika tidak ada satu pun dari nilai target yang merupakan substring dari build aplikasi sebenarnya.
app.build .exactlyMatches([...]) Menampilkan TRUE jika build aplikasi sebenarnya sama persis dengan nilai target mana pun di dalam daftar.
app.build .matches([...]) Menampilkan TRUE jika ada ekspresi reguler target mana pun di dalam daftar yang cocok dengan substring dari, atau keseluruhan, nilai sebenarnya. Untuk memaksakan pencocokan seluruh string, tuliskan ekspresi reguler dengan awalan "^" dan akhiran "$". Menggunakan sintaksis RE2.
app.version <, <=, ==, !=, >=, > Menampilkan TRUE jika versi aplikasi sebenarnya cocok secara numerik dengan nilai yang ditentukan agar sama dengan operator.
app.version .contains([...]) Menampilkan TRUE jika salah satu nilai target adalah substring dari versi aplikasi sebenarnya. Misalnya, "a" dan "bc" adalah substring dari "abc".
app.version .notContains([...]) Menampilkan TRUE jika tidak ada satu pun dari nilai target yang merupakan substring dari versi aplikasi sebenarnya.
app.version .exactlyMatches([...]) Menampilkan TRUE jika versi aplikasi sebenarnya sama persis dengan nilai target mana pun di dalam daftar.
app.version .matches([...]) Menampilkan TRUE jika ada ekspresi reguler target mana pun di dalam daftar yang cocok dengan substring dari, atau keseluruhan, nilai sebenarnya. Untuk memaksakan pencocokan seluruh string, tuliskan ekspresi reguler dengan awalan "^" dan akhiran "$". Menggunakan sintaksis RE2.
app.operatingSystemAndVersion .inOne([...]) Menampilkan TRUE jika OS dan versinya cocok dengan nilai target mana pun di dalam daftar.
Contoh:

    app.operatingSystemAndVersion.inOne([operatingSystemName('Macintosh').version.==('10.15')])
    

app.browserAndVersion .inOne([...]) Menampilkan TRUE jika browser dan versinya cocok dengan nilai target mana pun di dalam daftar.
Contoh:

    app.browserAndVersion.inOne([browserName('Chrome').anyVersion])
    

app.firebaseInstallationId in [...] Menampilkan TRUE jika id penginstalan cocok dengan yang ditentukan dalam daftar. Contoh penggunaan: app.firebaseInstallationId in ['eyJhbGciOiJFUzI1N_iIs5', 'eapzYQai_g8flVQyfKoGs7']
device.country in [...] Menampilkan TRUE jika negara perangkat cocok dengan yang ditentukan dalam daftar. Contoh penggunaan: device.country in ['gb', 'us']. Kode negara perangkat ditentukan menggunakan alamat IP perangkat dalam permintaan atau kode negara yang ditentukan oleh Firebase Analytics (jika data Analytics dibagikan kepada Firebase).
device.dateTime <=, > Membandingkan waktu saat ini dengan waktu target kondisi dan bernilai TRUE atau FALSE berdasarkan operator. Contoh penggunaan: dateTime < dateTime('2017-03-22T13:39:44').
device.language in [...] Menampilkan TRUE jika ada bahasa aplikasi yang cocok dengan bahasa dalam daftar. Contoh penggunaan: device.language in ['en-UK', 'en-US'].
device.os ==, != Menampilkan TRUE jika sistem operasi pada perangkat dan nilai pada kolom memiliki perbandingan yang sesuai dengan operator.
percent <=, >, between Menampilkan TRUE jika nilai dalam kolom percent setara dengan nilai yang ditetapkan secara acak, yang cocok dengan operator.

Anda dapat menentukan seed untuk memilih grup baru yang ditetapkan secara acak dari instance aplikasi untuk rentang persentase tertentu seperti yang dijelaskan dalam Jenis aturan kondisi.

Untuk melakukan ini, tuliskan nama seed sebelum operator, seperti pada contoh berikut:

percent('keyName') <= 10

Untuk mengonfigurasi rentang tertentu, Anda dapat menggunakan operator between. Untuk mengonfigurasi rentang pengguna antara 20 dan 60 tahun yang menggunakan seed default:

percent between 20 and 60

Untuk mengonfigurasi rentang pengguna antara 60 dan 80 tahun yang menggunakan seed khusus:

percent('seedName') between 60 and 80