Parameter dan kondisi Remote Config dalam template server

Pilih jenis template: Template klien Template server


Anda dapat menayangkan parameter dan nilai Remote Config dari template khusus server ke implementasi Remote Config (termasuk Cloud Run dan Cloud Functions for Firebase) yang menggunakan lingkungan server berikut:

  • Firebase Admin Node.js SDK v12.1.0+
  • Firebase Admin Python SDK v6.7.0+
  • Firebase Admin Go SDK v4.17.0+
  • Firebase Admin Java SDK v9.7.0+

Saat menggunakan Firebase console atau API backend Remote Config, Anda menetapkan satu atau beberapa parameter (key-value pair) dan memberikan nilai default untuk parameter tersebut dalam kode server Anda. Anda dapat mengganti nilai default dengan menentukan nilai parameter dalam template Remote Config. 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 permintaan klien. Setiap kali Anda memperbarui konfigurasi di Firebase console, Firebase akan membuat dan memublikasikan versi baru template Remote Config Anda. Versi 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 cara berbagai nilai parameter diprioritaskan di backend Remote Config dan di aplikasi server Anda. Panduan ini juga memberikan detail tentang jenis aturan yang digunakan untuk membuat kondisi.

Kondisi, aturan, dan nilai kondisional

Kondisi digunakan untuk menargetkan grup permintaan klien. Kondisi terdiri dari satu atau beberapa aturan yang semuanya harus bernilai true agar kondisi dapat bernilai true untuk permintaan klien 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 konsol Firebase, buka DevOps & Engagement > Remote Config > halaman Parameters untuk melihat persentase pengambilan untuk nilai kondisional setiap parameter. Metrik ini menunjukkan persentase permintaan dalam 24 jam terakhir yang menerima setiap nilai.

Menambahkan, mengedit, mengurutkan ulang, atau menghapus kondisi menggunakan konsol Firebase

Anda dapat membuat, mengedit, mengurutkan ulang, dan menghapus kondisi penargetan di konsol Firebase. Kondisi dibagikan di seluruh parameter dalam suatu project. Berikut cara mengelola kondisi:

  1. Di konsol Firebase, buka DevOps & Engagement > Remote Config > Conditions page (atau pilih Manage conditions dari halaman Parameters).
  2. Tambahkan kondisi: Klik Tambahkan kondisi (atau Buat kondisi pertama Anda), masukkan nama yang menentukan tujuan penargetan, dan pilih satu atau beberapa aturan penargetan.
  3. Mengedit kondisi: Klik nama kondisi atau ikon edit, ubah aturan sesuai kebutuhan, lalu klik Simpan.
  4. Mengubah prioritas kondisi: Di halaman Kondisi, tarik kondisi berdasarkan tuas penariknya untuk mengurutkannya ulang. Kondisi yang lebih tinggi dalam daftar lebih diprioritaskan daripada kondisi yang lebih rendah dalam daftar.
  5. Menghapus kondisi: Klik ikon hapus di samping kondisi yang ingin Anda hapus. Jika kondisi dirujuk oleh parameter apa pun, menghapusnya juga akan menghapus nilai kondisional terkait.

Setelah Anda menyimpan perubahan kondisi, publikasikan template menggunakan Publikasikan perubahan.

Batasan IPv6 dengan kontrol akses berbasis IP

Remote Config memiliki dukungan terbatas untuk IPv6 saat digunakan dengan kebijakan akses berbasis IP. Jika organisasi Anda membatasi akses ke rentang IP publik tertentu, menghubungkan melalui jaringan IPv6 dapat menyebabkan masalah berikut:

  • Akses konsol: Anda mungkin tidak dapat menggunakan fitur Remote Config tertentu di konsol Firebase, seperti memuat data atau menyiapkan penargetan.
  • Akses klien: Aplikasi klien mungkin mengalami error PERMISSION_DENIED.

Untuk mencegah masalah ini, konfigurasi jaringan Anda agar menggunakan IPv4 atau tambahkan rentang IP Firebase yang diperlukan ke daftar yang diizinkan organisasi Anda.

Prioritas parameter value

Saat menggunakan Remote Config di aplikasi server dengan Firebase Admin SDK, Anda akan mengambil dan memuat seluruh template untuk 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 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 halaman 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 mengetahui 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 hal-hal berikut:

  • 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 konsol Firebase. Berikut cara membuat atau mengubah grup:

  1. Di konsol Firebase, buka DevOps & Engagement > Remote Config > Parameters page.
  2. Pilih Manage groups.
  3. Centang kotak untuk parameter yang ingin Anda tambahkan dan pilih Move to group.
  4. 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.

Kondisi sinyal kustom

Anda dapat menggunakan nilai kondisi Sinyal kustom agar cocok dengan kondisi arbitrer yang Anda tentukan dalam aplikasi. Dengan demikian, Anda dapat menyesuaikan respons server untuk setiap permintaan klien. Kondisi sinyal kustom didukung dari versi lingkungan server berikut:

  • Firebase Admin Node.js SDK v12.1.0+
  • Firebase Admin Python SDK v6.7.0+
  • Firebase Admin Go SDK v4.17.0+
  • Firebase Admin Java SDK v9.7.0+

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 kondisi 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 kondisi sinyal kustom di Firebase console.

Kategori operator Operator Nilai
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 10 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 bagian atas halaman DevOps & Engagement > Remote Config > Parameters.

Batasan pada parameter dan kondisi

Dalam sebuah project Firebase, Anda dapat memiliki hingga 3.000 parameter dan 2.000 kondisi. Panjang kunci parameter maksimal 256 karakter, harus dimulai dengan garis bawah atau karakter huruf Latin (A-Z, a-z), dan juga dapat menyertakan angka. Panjang total string nilai parameter dalam satu project tidak boleh melebihi 1.000.000 karakter. Selain itu, aturan kondisi berdasarkan properti pengguna dapat mencakup hingga 100 nilai properti pengguna. Untuk daftar lengkap batas, lihat Kuota dan batas.

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 konsol Firebase, buka DevOps & Engagement > Remote Config > Parameters page. 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 konsol Firebase, buka halaman DevOps & Engagement > Remote Config > Conditions. 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.