Parameter dan Kondisi Remote Config


Anda dapat mengonfigurasi template untuk kasus penggunaan klien dan server. Template klien disajikan ke semua instance aplikasi yang menerapkan SDK klien Firebase untuk Remote Config, termasuk aplikasi Android, Apple, Web, Unity, Flutter, dan C++. Parameter dan nilai Remote Config dari template khusus server ditayangkan ke implementasi Remote Config (termasuk Cloud Run dan Cloud Functions) yang menggunakan Firebase Admin Node.js SDK v12.1.0+.

Saat menggunakan Firebase console atau API backend Remote Config, Anda menetapkan satu atau beberapa parameter (key-value pair) dan memberikan nilai default dalam aplikasi untuk parameter tersebut. Anda dapat mengganti nilai default dalam aplikasi dengan menentukan parameter value. Kunci parameter dan parameter value berupa string, tetapi parameter value dapat berperan sebagai jenis data lain jika nilai tersebut digunakan dalam aplikasi Anda.

Dengan menggunakan Firebase console, Admin SDK, atau Remote Config REST API, Anda dapat membuat nilai default baru untuk parameter, serta nilai kondisional yang digunakan untuk menargetkan grup instance aplikasi. Setiap kali Anda memperbarui konfigurasi di Firebase console, Firebase akan membuat dan memublikasikan versi baru template Remote Config Anda. Versi yang sebelumnya akan disimpan, sehingga Anda dapat mengambil atau melakukan rollback sesuai kebutuhan. Operasi ini tersedia untuk Anda di Firebase console, Firebase Admin SDK, dan REST API, serta dijelaskan secara lebih dalam di bagian Mengelola versi template Remote Config.

Panduan ini menjelaskan parameter, kondisi, aturan, nilai kondisional, dan bagaimana berbagai parameter value diprioritaskan di backend Remote Config dan di aplikasi Anda. Panduan ini juga menjelaskan jenis aturan yang digunakan untuk membuat kondisi.

Kondisi, aturan, dan nilai kondisional

Kondisi digunakan untuk menarget grup instance aplikasi. Kondisi terdiri dari satu atau beberapa aturan yang semuanya harus bernilai true agar kondisi dapat bernilai true untuk instance aplikasi tertentu. Jika nilai untuk aturan tidak ditentukan (misalnya, saat tidak ada nilai yang tersedia), aturan tersebut akan bernilai false.

Misalnya, Anda dapat membuat parameter yang menentukan string versi dan nama model model bahasa besar (LLM), serta menayangkan respons dari berbagai model berdasarkan aturan sinyal kustom. Dalam kasus penggunaan ini, Anda dapat menggunakan model versi stabil sebagai nilai default untuk menayangkan sebagian besar permintaan, dan menggunakan sinyal kustom untuk menggunakan model eksperimental guna merespons permintaan klien pengujian.

Sebuah parameter dapat memiliki beberapa nilai kondisional yang menggunakan kondisi berbeda, dan parameter dapat berbagi kondisi dalam satu project. Di tab Parameters pada Firebase console, Anda dapat melihat persentase pengambilan untuk nilai kondisional setiap parameter. Metrik ini menunjukkan persentase permintaan dalam 24 jam terakhir yang menerima setiap nilai.

Prioritas parameter value

Sebuah parameter dapat memiliki beberapa nilai kondisional yang terkait dengannya. Aturan berikut menentukan nilai mana yang diambil dari template Remote Config, dan nilai mana yang digunakan dalam instance aplikasi tertentu pada titik waktu tertentu:

  1. Pertama, nilai kondisional diterapkan untuk setiap kondisi yang bernilai true untuk permintaan klien tertentu. Jika beberapa kondisi bernilai true, kondisi pertama (teratas) yang ditampilkan di UI Firebase console akan lebih diutamakan, dan nilai kondisional yang terkait dengan kondisi tersebut akan diberikan saat aplikasi mengambil nilai dari backend. Anda dapat mengubah prioritas kondisi dengan menarik lalu melepas kondisi di tab Conditions.

  2. Jika tidak ada nilai kondisional dengan kondisi yang bernilai true, nilai default Remote Config akan diberikan ketika aplikasi mengambil nilai dari backend. Jika parameter tidak ada pada backend, atau jika nilai default disetel ke Use in-app default, tidak ada nilai yang akan diberikan untuk parameter tersebut ketika aplikasi mengambil nilai.

Di aplikasi Anda, parameter value ditampilkan dengan metode get sesuai dengan daftar prioritas berikut

  1. Jika nilai diambil dari backend lalu diaktifkan, aplikasi akan menggunakan nilai yang diambil tersebut. Parameter value yang diaktifkan bersifat tetap.
  2. Jika tidak ada nilai yang diambil dari backend, atau jika nilai yang diambil dari backend Remote Config belum diaktifkan, aplikasi akan menggunakan nilai default dalam aplikasi.

    Untuk mengetahui informasi selengkapnya tentang cara mendapatkan dan menetapkan nilai default, lihat Mendownload default template Remote Config.

  3. Jika nilai default dalam aplikasi tidak ditetapkan, aplikasi akan menggunakan nilai jenis statis (seperti 0 untuk int dan false untuk boolean).

Gambar ini merangkum cara memprioritaskan parameter value pada backend Remote Config, dan di aplikasi Anda:

Diagram yang menunjukkan alur yang dijelaskan oleh daftar yang diurutkan di atas

Jenis data parameter value

Remote Config memungkinkan Anda memilih jenis data untuk setiap parameter, dan memvalidasi semua nilai Remote Config terhadap jenis tersebut sebelum update template. Jenis data disimpan dan ditampilkan dengan permintaan getRemoteConfig.

Jenis data yang didukung adalah:

  • String
  • Boolean
  • Number
  • JSON

Di UI Firebase console, jenis data dapat dipilih dari drop-down di samping kunci parameter. Di REST API, jenis dapat ditetapkan menggunakan kolom value_type dalam objek parameter.

Grup parameter

Dengan Remote Config, Anda dapat mengelompokkan beberapa parameter untuk mendapatkan UI yang lebih teratur dan meningkatkan kegunaan.

Misalnya, Anda perlu mengaktifkan atau menonaktifkan tiga jenis autentikasi yang berbeda saat meluncurkan fitur login baru. Dengan Remote Config, Anda dapat membuat tiga parameter untuk mengaktifkan jenis yang diinginkan, lalu mengaturnya dalam grup bernama "Login baru", tanpa perlu menambahkan awalan atau pengurutan khusus.

Anda dapat membuat grup parameter menggunakan Firebase console atau Remote Config REST API. Setiap grup parameter yang Anda buat memiliki nama unik di template Remote Config Anda. Saat membuat grup parameter, perhatikan:

  • Parameter dapat disertakan hanya dalam satu grup pada waktu tertentu, dan kunci parameter harus tetap unik di semua parameter.
  • Nama grup parameter dibatasi hingga 256 karakter.
  • Jika Anda menggunakan REST API dan Firebase console, pastikan bahwa logika REST API diperbarui untuk menangani grup parameter saat publikasi.

Membuat atau mengubah grup parameter menggunakan Firebase console

Anda dapat mengelompokkan parameter di tab Parameters pada Firebase console. Untuk membuat atau memodifikasi grup:

  1. Pilih Manage groups.
  2. Centang kotak untuk parameter yang ingin Anda tambahkan dan pilih Move to group.
  3. Pilih grup yang ada, atau buat grup baru dengan memasukkan nama dan deskripsi, lalu pilih Create new group. Setelah disimpan, grup tersedia untuk dipublikasikan menggunakan tombol Publish changes.

Jenis aturan kondisi

Jenis aturan berikut ini didukung di Firebase console. Fitur yang setara tersedia di REST API Remote Config, seperti yang dijelaskan dalam referensi ekspresi kondisional.

Jenis aturan Operator Nilai Catatan
Aplikasi == Pilih dari daftar ID Aplikasi untuk aplikasi yang terkait dengan project Firebase Anda. Saat menambahkan aplikasi ke Firebase, Anda harus memasukkan ID paket iOS atau nama paket Android, yang menentukan atribut yang ditunjukkan sebagai ID Aplikasi dalam aturan Remote Config.

Gunakan atribut ini seperti berikut:
  • Untuk platform Apple: Gunakan CFBundleIdentifier aplikasi. Anda dapat menemukan ID Paket dalam tab General untuk target utama aplikasi Anda di Xcode.
  • Untuk Android: Gunakan applicationId aplikasi. Anda dapat menemukan applicationId di file build.gradle level aplikasi Anda.
Versi aplikasi Untuk nilai string:
exactly matches,
contains,
does not contain,
contains regex

Untuk nilai numerik:
<, <=, =, !=, >, >=

Tentukan versi aplikasi yang akan ditargetkan.

Sebelum menggunakan aturan ini, Anda harus menggunakan aturan App ID untuk memilih aplikasi Android/Apple yang terkait dengan project Firebase Anda.

Untuk platform Apple: Gunakan CFBundleShortVersionString aplikasi.

Catatan: Pastikan aplikasi Apple Anda menggunakan Firebase Apple Platform SDK versi 6.24.0 atau yang lebih baru, karena CFBundleShortVersionString tidak dikirim di versi sebelumnya (lihatcatatan rilis).

Untuk Android: Gunakan versionName aplikasi.

Perbandingan string untuk aturan ini peka terhadap huruf besar dan kecil. Saat menggunakan operator exactly matches, contains, does not contain , atau contains regex, Anda dapat memilih beberapa nilai.

Jika menggunakan operator contains regex, Anda dapat membuat ekspresi reguler dalam format RE2. Ekspresi reguler Anda dapat cocok dengan semua atau sebagian dari string versi target. Anda juga dapat menggunakan tanda ^ dan $ untuk mencocokkan bagian awal, akhir, atau keseluruhan string target.

Nomor build Untuk nilai string:
exactly matches,
contains,
does not contain,
ekspresi reguler

Untuk nilai numerik
=, ≠, >, ≥, <, ≤

Tentukan build aplikasi yang akan ditargetkan.

Sebelum menggunakan aturan ini, Anda harus menggunakan aturan App ID untuk memilih aplikasi Apple atau Android yang terkait dengan project Firebase Anda.

Operator ini hanya tersedia untuk aplikasi Apple dan Android. Ini sama dengan CFBundleVersion aplikasi untuk Apple dan versionCode aplikasi untuk Android. Perbandingan string untuk aturan ini peka huruf besar/kecil.

Saat menggunakan operator exactly matches, contains, does not contain , atau contains regex, Anda dapat memilih beberapa nilai.

Jika menggunakan operator contains regex, Anda dapat membuat ekspresi reguler dalam format RE2. Ekspresi reguler dapat cocok dengan keseluruhan atau sebagian dari string versi target. Anda juga dapat menggunakan tanda ^ dan $ untuk mencocokkan bagian awal, akhir, atau keseluruhan string target.

Platform == iOS
Android
Web
 
Sistem operasi ==

Tentukan sistem operasi yang akan ditargetkan.

Sebelum menggunakan aturan ini, Anda harus menggunakan aturan App ID untuk memilih aplikasi Web yang terkait dengan project Firebase Anda.

Aturan ini bernilai true untuk instance aplikasi Web tertentu jika sistem operasi dan versinya cocok dengan nilai target dalam daftar yang ditentukan.
Browser ==

Tentukan browser yang akan ditargetkan.

Sebelum menggunakan aturan ini, Anda harus menggunakan aturan App ID untuk memilih aplikasi Web yang terkait dengan project Firebase Anda.

Aturan ini bernilai true untuk instance aplikasi Web tertentu jika browser dan versinya cocok dengan nilai target dalam daftar yang ditentukan.
Kategori perangkat is, is not seluler Aturan ini mengevaluasi apakah perangkat yang mengakses aplikasi web Anda adalah perangkat seluler atau non-seluler (desktop atau konsol). Jenis aturan ini hanya tersedia untuk aplikasi web.
Bahasa ada di Pilih satu atau beberapa bahasa. Aturan ini bernilai true untuk instance aplikasi tertentu jika instance aplikasi tersebut diinstal pada perangkat yang menggunakan salah satu bahasa yang terdaftar.
Negara/Wilayah ada di Pilih satu atau beberapa region atau negara. Aturan ini bernilai true untuk instance aplikasi tertentu jika instance berada di region atau negara yang terdaftar. Kode negara perangkat ditentukan menggunakan alamat IP perangkat dalam permintaan atau kode negara yang ditentukan oleh Firebase Analytics (jika data Analytics dibagikan kepada Firebase).
User audience(s) Minimal menyertakan satu item Pilih satu atau beberapa dari daftar audiens Google Analytics yang telah Anda siapkan untuk project Anda.

Aturan ini memerlukan aturan App ID untuk memilih aplikasi yang terkait dengan project Firebase Anda.

Catatan: Karena banyak audience Analytics ditentukan berdasarkan peristiwa atau properti pengguna, yang dapat didasarkan pada tindakan pengguna aplikasi, mungkin perlu waktu beberapa saat agar aturan User in audience dapat berlaku untuk instance aplikasi tertentu.

Properti pengguna Untuk nilai string:
contains,
does not contain,
exactly matches,
contains regex

Untuk nilai numerik:
=, ≠, >, ≥, <, ≤

Catatan: Pada klien, Anda dapat menetapkan nilai string saja untuk properti pengguna. Untuk kondisi yang menggunakan operator numerik, Remote Config akan mengonversi nilai properti pengguna yang terkait menjadi bilangan bulat/float.
Pilih dari daftar properti pengguna Google Analytics yang tersedia. Guna mempelajari cara menggunakan properti pengguna untuk menyesuaikan aplikasi Anda untuk segmen basis pengguna yang sangat spesifik, lihat Remote Config dan properti pengguna.

Untuk mempelajari properti pengguna lebih lanjut, lihat panduan berikut ini:

Jika menggunakan operator exactly matches, contains, does not contain , atau contains regex, Anda dapat memilih beberapa nilai.

Jika menggunakan operator contains regex, Anda dapat membuat ekspresi reguler dalam format RE2. Ekspresi reguler dapat cocok dengan keseluruhan atau sebagian dari string versi target. Anda juga dapat menggunakan anchor ^ dan $ untuk mencocokkan bagian awal, akhir, atau keseluruhan string target.

Catatan: Properti pengguna yang dikumpulkan secara otomatis tidak tersedia saat membuat kondisi Remote Config.
Pengguna dalam persentase acak Penggeser (di Firebase console. REST API menggunakan operator <=, >, dan between). 0-100

Gunakan kolom ini untuk menerapkan perubahan pada sampel acak dari instance aplikasi (dengan ukuran sampel hingga sekecil 0,0001%), menggunakan widget penggeser untuk menyegmentasi pengguna yang diacak (instance aplikasi) ke dalam grup.

Setiap instance aplikasi secara terus-menerus dipetakan ke suatu bilangan bulat atau pecahan secara acak, berdasarkan seed yang ditentukan dalam project tersebut.

Aturan akan menggunakan kunci default (ditampilkan sebagai Edit seed di Firebase console), kecuali jika Anda mengubah nilai seed. Anda dapat mengembalikan aturan agar menggunakan kunci default dengan mengosongkan kolom Seed.

Untuk menangani instance aplikasi yang sama secara konsisten dalam rentang persentase tertentu, gunakan nilai seed yang sama di seluruh kondisi. Atau, pilih grup instance aplikasi baru yang ditetapkan secara acak untuk rentang persentase tertentu dengan menentukan seed baru.

Misalnya, untuk membuat dua kondisi terkait yang masing-masing berlaku untuk 5% pengguna aplikasi yang tidak tumpang-tindih, Anda dapat mengonfigurasi satu kondisi untuk mencocokkan persentase antara 0% dan 5% dan mengonfigurasi kondisi lain agar cocok dengan rentang antara 5% dan 10%. Agar beberapa pengguna dapat muncul secara acak di kedua grup, gunakan nilai seed yang berbeda untuk aturan dalam setiap kondisi.

Imported segment ada di Pilih satu atau beberapa segmen yang diimpor. Aturan ini mengharuskan penyiapan segmen kustom yang diimpor.
Tanggal/Waktu Before, After Tanggal dan waktu yang ditentukan, di zona waktu perangkat atau zona waktu tertentu seperti "(GMT+11) waktu Sydney". Membandingkan waktu saat ini dengan waktu pengambilan perangkat.
First open Before, After Tanggal dan waktu yang ditentukan, dalam zona waktu yang ditentukan.

Mencocokkan pengguna yang pertama kali membuka aplikasi yang ditarget dalam rentang waktu yang ditentukan.

Memerlukan SDK berikut:

  • Firebase SDK untuk Google Analytics
  • SDK platform Apple v9.0.0+ atau Android SDK v21.1.1+ (Firebase BoM v30.3.0+)
Installation ID ada di Tentukan satu atau beberapa ID Penginstalan (hingga 50) yang akan ditargetkan. Aturan ini bernilai true untuk penginstalan tertentu jika ID penginstalan tersebut berada dalam daftar nilai yang dipisahkan koma.

Untuk mempelajari cara mendapatkan ID penginstalan, lihat Mengambil ID klien.
Pengguna ada (tanpa operator) Menargetkan semua pengguna pada semua aplikasi dalam project saat ini.

Gunakan aturan kondisi ini untuk mencocokkan semua pengguna dalam project, terlepas dari aplikasi atau platform yang digunakan.

Menelusuri parameter dan kondisi

Anda dapat menelusuri kunci parameter, parameter value, dan kondisi project dari Firebase console menggunakan kotak penelusuran di atas tab Parameters pada Remote Config.

Batasan pada parameter dan kondisi

Dalam sebuah project Firebase, Anda dapat memiliki hingga 2.000 parameter dan 500 kondisi. Panjang kunci parameter maksimal 256 karakter, harus dimulai dengan garis bawah atau karakter abjad Latin (A-Z, a-z), dan juga bisa menyertakan angka. Panjang total string parameter value dalam satu project tidak boleh melebihi 1.000.000 karakter.

Melihat perubahan parameter dan kondisi

Anda dapat melihat perubahan terbaru pada template Remote Config dari Firebase console. Untuk setiap parameter dan kondisi, Anda dapat:

  • Melihat nama pengguna yang terakhir kali mengubah parameter atau kondisi.

  • Jika perubahan terjadi pada hari yang sama, melihat jumlah menit atau jam yang telah berlalu sejak perubahan dipublikasikan ke template Remote Config yang aktif.

  • Jika perubahan terjadi dalam satu atau beberapa hari yang lalu, melihat tanggal saat perubahan dipublikasikan ke template Remote Config yang aktif.

Histori perubahan parameter

Di halaman Parameters Remote Config, kolom Last published menampilkan pengguna terakhir yang mengubah setiap parameter dan tanggal publikasi terakhir untuk perubahan tersebut:

  • Untuk melihat metadata yang berubah bagi parameter yang dikelompokkan, luaskan grup parameter.

  • Untuk mengurutkan dalam urutan menaik atau menurun menurut tanggal publikasi, klik label kolom Last published.

Histori perubahan kondisi

Di halaman Conditions Remote Config, Anda dapat melihat pengguna terakhir yang mengubah kondisi dan tanggalnya di samping kolom Last modified di bawah setiap kondisi.

Langkah berikutnya

Untuk mengonfigurasi project dan aplikasi Firebase agar dapat menggunakan Remote Config, lihat Memulai Firebase Remote Config.