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

Saat menggunakan Remote Config di aplikasi server dengan Firebase Admin SDK, Anda akan mengambil dan memuat seluruh template guna mengekstrak parameter value yang sesuai secara on-demand untuk setiap permintaan klien. Sebuah parameter dapat memiliki beberapa nilai kondisional yang terkait dengannya.

Aturan berikut menentukan nilai yang ditetapkan selama evaluasi template 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 template dievaluasi. 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 selama evaluasi template. Jika parameter tidak ada dalam template, atau jika nilai default ditetapkan ke Use in-app default, tidak ada nilai yang akan diberikan untuk parameter tersebut saat template dievaluasi.

Untuk informasi selengkapnya tentang cara memuat dan mengevaluasi template Remote Config di aplikasi server, lihat Menggunakan Remote Config di lingkungan server.

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

Template Remote Config untuk aplikasi server mendukung jenis kondisi berikut:

Pengguna dalam persentase acak

Gunakan kolom ini untuk menerapkan perubahan pada sampel acak dari instance aplikasi (dengan ukuran sampel hingga sekecil 0,0001%), menggunakan widget penggeser untuk melakukan segmentasi 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.

Untuk mempelajari cara menambahkan kondisi persentase acak ke aplikasi, lihat Mengonfigurasi aplikasi server.

Sinyal kustom

Dengan Firebase Admin Node.js SDK 12.5.0 dan yang lebih tinggi, Anda dapat menggunakan jenis kondisi Sinyal kustom agar cocok dengan kondisi arbitrer yang Anda tentukan dalam aplikasi. Dengan demikian, Anda dapat menyesuaikan respons server untuk setiap permintaan klien.

Misalnya, jika sedang mengerjakan aplikasi server yang menggunakan AI generatif untuk membantu membuat respons dengan model yang berbeda yang disesuaikan untuk platform tertentu, Anda dapat melakukan hal berikut:

  1. Tambahkan parameter prompt dan model_name ke template server Remote Config Anda.
  2. Tambahkan sinyal kustom dengan nilai platform untuk setiap platform yang ingin Anda targetkan.
  3. Tambahkan nilai default ke template Remote Config khusus server dan nilai kondisional untuk setiap kondisi platform yang Anda tentukan.
  4. Update kode aplikasi Anda untuk menetapkan dan menggunakan sinyal kustom platform.

Sekarang, aplikasi Anda dapat mengekstrak perintah dan model yang sesuai selama evaluasi template dan menggunakannya untuk menampilkan respons yang disesuaikan kepada setiap klien.

Anda dapat menggunakan jenis aturan berikut untuk membuat sinyal kustom di Firebase console.

Kategori operator Operator Nilai Catatan
Teks exactly matches, contains, does not contain, contains regex

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 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.

Numbers <, <=, =, !=, >, >= Angka maksimal sepuluh digit di setiap sisi titik desimal.
Versi <, <=, =, !=, >, >= Angka yang mewakili nomor versi yang akan dicocokkan (misalnya, 2.1.0).

Untuk mempelajari cara menambahkan sinyal kustom ke aplikasi, lihat Mengonfigurasi aplikasi server.

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 Firebase dan aplikasi server agar menggunakan Remote Config, lihat Menggunakan Remote Config di lingkungan server.