欢迎参加我们将于 2022 年 10 月 18 日举办的 Firebase 峰会(线上线下同时进行),了解 Firebase 如何帮助您加快应用开发速度、满怀信心地发布应用,并在之后根据需要轻松地扩大应用规模。立即报名

Parameter dan Kondisi Remote Config

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 menetapkan parameter value untuk sisi server. Kunci parameter dan parameter value berupa string, tetapi parameter value dapat diubah menjadi jenis data lain jika nilai tersebut digunakan dalam aplikasi Anda.

Dengan menggunakan Firebase console, Admin SDK atau REST API Remote Config, Anda dapat membuat nilai default baru untuk parameter, serta nilai bersyarat 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 melalui 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 bersyarat, dan bagaimana berbagai parameter value diprioritaskan di Server Remote Config dan di aplikasi Anda. Panduan ini juga menguraikan detail tentang jenis aturan yang digunakan untuk membuat kondisi.

Kondisi, aturan, dan value kondisional

Kondisi digunakan untuk menargetkan 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, parameter yang menentukan halaman pembuka aplikasi dapat menampilkan gambar yang berbeda berdasarkan jenis OS, dengan menggunakan aturan sederhana if device_os = Android:

Screenshot parameter 'splash_page' di Firebase console yang menunjukkan nilai default untuk iOS dan value kondisional untuk Android

Atau, kondisi waktu dapat digunakan untuk mengontrol kapan aplikasi Anda menampilkan item promosi khusus.

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

Prioritas parameter value

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

Parameter value untuk sisi server diambil berdasarkan daftar prioritas berikut

  1. Pertama, value kondisional diterapkan, jika ada yang memiliki kondisi yang bernilai true untuk instance aplikasi tertentu. Jika beberapa kondisi bernilai true, kondisi pertama (teratas) yang ditampilkan di UI Firebase console akan lebih diutamakan, dan value 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 value kondisional dengan kondisi yang bernilai true, nilai default pada sisi server 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 lebih lanjut 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 aplikasi Anda:

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

Jenis data parameter value

Dengan Remote Config, Anda dapat memilih jenis data untuk setiap parameter dan memvalidasi semua nilai sisi server terhadap jenis tersebut sebelum pembaruan template. Jenis data disimpan dan ditampilkan pada permintaan getRemoteConfig.

Jenis yang didukung saat ini adalah:

  • String
  • Boolean
  • Number
  • JSON

Di UI Firebase console, jenis data dapat dipilih dari dropdown 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 agar mendapat UI dan model mental yang lebih teratur.

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 REST API Remote Config. 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.

Membuat grup secara terprogram

REST API Remote Config menyediakan cara otomatis untuk membuat dan memublikasikan grup parameter. Dengan asumsi bahwa Anda sudah terbiasa menggunakan REST dan siap mengizinkan permintaan ke API, Anda dapat melakukan langkah-langkah berikut untuk mengelola grup secara terprogram:

  1. Mengambil template saat ini
  2. Menambahkan objek JSON untuk mewakili grup parameter Anda
  3. Memublikasikan grup parameter menggunakan permintaan HTTP PUT.

Objek parameterGroups berisi kunci grup, dengan deskripsi bertingkat dan daftar parameter yang dikelompokkan. Perhatikan bahwa setiap kunci grup harus unik secara global.

Misalnya, berikut adalah kutipan dari revisi template yang menambahkan grup parameter "new menu" dengan satu parameter, pumpkin_spice_season:

{
  "parameters": {},
  "version": {
    "versionNumber": "1",

    …

  },
  "parameterGroups": {
    "new menu": {
      "description": "New Menu",
      "parameters": {
        "pumpkin_spice_season": {
          "defaultValue": {
            "value": "true"
          },
          "description": "Whether it's currently pumpkin spice season."
        }
      }
    }
  }
}

Jenis aturan kondisi

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

Jenis aturanOperatorNilaiCatatan
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:
sama persis,
berisi,
tidak berisi,
ekspresi reguler

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

Tentukan versi aplikasi yang akan ditargetkan.

Sebelum menggunakan aturan ini, Anda harus menggunakan aturan ID Aplikasi 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 tinggi, 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 sama persis, berisi, tidak berisi, atau ekspresi reguler, Anda dapat memilih beberapa nilai.

Saat menggunakan operator ekspresi reguler, 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:
sama persis,
berisi,
tidak berisi,
ekspresi reguler

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

Tentukan build aplikasi yang akan ditargetkan.

Sebelum menggunakan aturan ini, Anda harus menggunakan aturan ID Aplikasi 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 sama persis, berisi, tidak berisi, atau ekspresi reguler, Anda dapat memilih beberapa nilai.

Saat menggunakan operator ekspresi reguler, 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.

Platform == iOS
Android
Web
 
Sistem operasi ==

Tentukan sistem operasi yang akan ditargetkan.

Sebelum menggunakan aturan ini, Anda harus menggunakan aturan ID Aplikasi 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 ID Aplikasi 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 termasuk, tidak termasuk perangkat 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/Region 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).
Audience pengguna Minimal menyertakan satu item Pilih satu atau beberapa dari daftar audience Google Analytics yang telah Anda siapkan untuk project Anda.

Aturan ini memerlukan aturan ID Aplikasi 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 Pengguna dalam audience dapat berlaku untuk instance aplikasi tertentu.

Properti pengguna Untuk nilai string:
berisi,
tidak berisi,
sama persis,
ekspresi reguler

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:

Saat menggunakan operator sama persis, berisi, tidak berisi, atau ekspresi reguler, Anda dapat memilih beberapa nilai.

Saat menggunakan operator ekspresi reguler, 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.

Catatan: Properti pengguna yang dikumpulkan secara otomatis saat ini tidak tersedia ketika membuat kondisi Remote Config.
Pengguna dalam persentil acak <=, > 0-100

Gunakan kolom ini untuk menerapkan perubahan pada sampel acak dari instance aplikasi (dengan ukuran sampel hingga sekecil 0,0001%), menggunakan operator <= dan > untuk menyegmentasikan pengguna (instance aplikasi) ke dalam grup.

Setiap instance aplikasi secara terus-menerus dipetakan ke suatu bilangan bulat atau pecahan secara acak, berdasarkan kunci yang ditentukan dalam project tersebut. Aturan akan menggunakan kunci default (ditunjukkan sebagai DEF dalam Firebase console), kecuali jika Anda memilih atau membuat kunci lainnya. Anda dapat menampilkan aturan untuk menggunakan kunci default dengan mengosongkan kolom Randomize users using this key. Anda dapat menggunakan satu kunci di seluruh aturan untuk secara konsisten menangani instance aplikasi yang sama dalam rentang persentase tertentu. Atau, Anda dapat memilih grup baru yang ditetapkan secara acak dari instance aplikasi untuk rentang persentase tertentu dengan membuat kunci baru.

Misalnya, untuk membuat dua kondisi berkaitan yang masing-masing diterapkan pada 5% pengguna aplikasi yang tidak tumpang tindih, Anda dapat memiliki satu kondisi yang mencakup aturan <= 5%, dan kondisi lainnya yang mencakup aturan > 5% serta aturan <= 10%. Agar memungkinkan beberapa pengguna untuk muncul secara acak pada kedua grup, gunakan kunci yang berbeda untuk aturan dalam setiap kondisi.

Segmen yang diimpor ada di Pilih satu atau beberapa segmen yang diimpor. Aturan ini mengharuskan penyiapan segmen kustom yang diimpor.
Tanggal/Waktu Sebelum, Setelah 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.
ID penginstalan 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.

Menelusuri parameter dan kondisi

Anda dapat menelusuri kunci parameter, parameter value, dan kondisi project dari Firebase console menggunakan kotak penelusuran di bagian 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 pada 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.

Pembaruan parameter

Di halaman Parameter Remote Config, kolom Terakhir dipublikasikan 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.

Pembaruan kondisi

Di halaman Kondisi Remote Config, Anda dapat melihat pengguna terakhir yang mengubah kondisi dan tanggal di samping kolom Terakhir diubah di bawah setiap kondisi.

Langkah berikutnya

Untuk mulai mengonfigurasi project Firebase Anda, lihat Menyiapkan Project Firebase Remote Config.