Ikuti semua informasi yang diumumkan di Firebase Summit, dan pelajari bagaimana Firebase dapat membantu Anda mempercepat pengembangan aplikasi dan menjalankan aplikasi dengan percaya diri. Pelajari Lebih Lanjut

Parameter dan Kondisi Konfigurasi Jarak Jauh

Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.

Saat menggunakan Firebase console atau API backend Remote Config , Anda menentukan satu atau beberapa parameter (pasangan nilai kunci) dan memberikan nilai default dalam aplikasi untuk parameter tersebut. Anda dapat mengganti nilai default dalam aplikasi dengan menentukan nilai parameter sisi server. Kunci parameter dan nilai parameter adalah string, tetapi nilai parameter dapat ditransmisikan sebagai tipe data lain saat Anda menggunakan nilai ini di aplikasi Anda.

Dengan menggunakan Firebase console, Admin SDK , atau REST API Remote Config , Anda dapat membuat nilai default baru untuk parameter Anda, serta nilai bersyarat yang digunakan untuk menargetkan grup instance aplikasi. Setiap kali Anda memperbarui konfigurasi di Firebase console, Firebase membuat dan memublikasikan versi baru template Remote Config Anda. Versi sebelumnya disimpan, memungkinkan Anda untuk mengambil atau mengembalikan sesuai kebutuhan. Operasi ini tersedia untuk Anda melalui Firebase console, Firebase Admin SDK, dan REST API dan dijelaskan lebih luas dalam versi template Kelola Remote Config .

Panduan ini menjelaskan parameter, ketentuan, aturan, nilai bersyarat, dan bagaimana berbagai nilai parameter diprioritaskan di Server Remote Config dan di aplikasi Anda. Ini juga memberikan detail tentang jenis aturan yang digunakan untuk membuat kondisi.

Kondisi, aturan, dan nilai bersyarat

Kondisi digunakan untuk menargetkan sekelompok instance aplikasi. Ketentuan terdiri dari satu atau beberapa aturan yang semuanya harus bernilai true agar ketentuan dapat bernilai true untuk instance aplikasi tertentu. Jika nilai untuk aturan tidak ditentukan (misalnya, saat tidak ada nilai yang tersedia), aturan itu akan dievaluasi menjadi false .

Misalnya, parameter yang mendefinisikan halaman pembuka aplikasi dapat menampilkan gambar yang berbeda berdasarkan jenis OS menggunakan aturan sederhana if device_os = Android :

Tangkapan layar parameter 'splash_page' di konsol Firebase yang menunjukkan nilai default untuk iOS dan nilai bersyarat untuk Android

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

Parameter dapat memiliki beberapa nilai kondisional yang menggunakan kondisi berbeda, dan parameter dapat berbagi kondisi dalam sebuah proyek. Di tab Parameter di Firebase console, Anda dapat melihat persentase pengambilan untuk setiap nilai kondisional parameter. Metrik ini menunjukkan persentase permintaan dalam 24 jam terakhir yang menerima setiap nilai.

Prioritas nilai parameter

Parameter mungkin memiliki beberapa nilai 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:

Nilai parameter sisi server diambil sesuai dengan daftar prioritas berikut:

  1. Pertama, nilai bersyarat diterapkan, jika ada yang memiliki kondisi yang bernilai true untuk instance aplikasi tertentu. Jika beberapa kondisi bernilai true , yang pertama (atas) yang ditampilkan di UI Firebase console akan diprioritaskan, dan nilai kondisional yang terkait dengan kondisi tersebut diberikan saat aplikasi mengambil nilai dari backend. Anda dapat mengubah prioritas ketentuan dengan menyeret dan melepaskan ketentuan di tab Ketentuan .

  2. Jika tidak ada nilai bersyarat dengan kondisi yang dievaluasi menjadi true , nilai default sisi server diberikan saat aplikasi mengambil nilai dari backend. Jika parameter tidak ada di backend, atau jika nilai default disetel ke Gunakan default dalam aplikasi , maka tidak ada nilai yang diberikan untuk parameter tersebut saat aplikasi mengambil nilai.

Di aplikasi Anda, nilai parameter dikembalikan dengan metode get sesuai dengan daftar prioritas berikut

  1. Jika nilai diambil dari backend dan kemudian diaktifkan, aplikasi akan menggunakan nilai yang diambil. Nilai parameter yang diaktifkan bersifat persisten.
  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 informasi selengkapnya tentang mendapatkan dan menyetel nilai default, lihat Mengunduh default template Remote Config .

  3. Jika tidak ada nilai default dalam aplikasi yang disetel, aplikasi menggunakan nilai tipe statis (seperti 0 untuk int dan false untuk boolean ).

Grafik ini merangkum bagaimana nilai parameter diprioritaskan di backend Remote Config, dan di aplikasi Anda:

Diagram yang menunjukkan aliran yang dijelaskan oleh daftar berurutan di atas

Tipe data nilai parameter

Remote Config memungkinkan Anda memilih tipe data untuk setiap parameter, dan memvalidasi semua nilai sisi server terhadap tipe tersebut sebelum pembaruan template. Tipe data disimpan dan dikembalikan pada permintaan getRemoteConfig .

Jenis yang saat ini didukung adalah:

  • String
  • Boolean
  • Number
  • JSON

Di UI Firebase console, tipe data dapat dipilih dari dropdown di sebelah kunci parameter. Dalam jenis REST API dapat diatur menggunakan bidang value_type dalam objek parameter.

Grup parameter

Remote Config memungkinkan Anda mengelompokkan parameter bersama untuk UI dan model mental yang lebih terorganisir.

Misalnya, katakanlah 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 dimasukkan hanya dalam satu grup setiap saat, 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 semua logika REST API diperbarui untuk menangani grup parameter saat dipublikasikan.

Buat atau ubah grup parameter menggunakan Firebase console

Anda dapat mengelompokkan parameter di tab Parameter di Firebase console. Untuk membuat atau mengubah grup:

  1. Pilih Kelola grup .
  2. Pilih kotak centang untuk parameter yang ingin Anda tambahkan dan pilih Pindahkan ke grup .
  3. Pilih grup yang ada, atau buat grup baru dengan memasukkan nama dan deskripsi, lalu memilih Buat grup baru . Setelah Anda menyimpan grup, grup tersedia untuk diterbitkan menggunakan tombol Publikasikan perubahan .

Buat grup secara terprogram

REST API Remote Config menyediakan cara otomatis untuk membuat dan memublikasikan grup parameter. Dengan asumsi Anda terbiasa dengan REST dan disiapkan untuk mengotorisasi permintaan ke API, Anda dapat melakukan langkah-langkah ini untuk mengelola grup secara terprogram:

  1. Ambil template saat ini
  2. Tambahkan objek JSON untuk mewakili grup parameter Anda
  3. Publikasikan grup parameter menggunakan permintaan HTTP PUT.

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

Sebagai contoh, berikut adalah kutipan dari revisi template yang menambahkan grup parameter "menu baru" 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 didukung di Firebase console. Fungsionalitas yang setara tersedia di REST API Remote Config, sebagaimana dirinci dalam referensi ekspresi bersyarat .

Jenis aturan Operator Nilai Catatan
Aplikasi == Pilih dari daftar ID Aplikasi untuk aplikasi yang terkait dengan proyek Firebase Anda. Saat menambahkan aplikasi ke Firebase, Anda memasukkan ID bundel atau nama paket Android yang mendefinisikan atribut yang diekspos sebagai ID Aplikasi dalam aturan Remote Config.

Gunakan atribut ini sebagai berikut:
  • Untuk platform Apple: Gunakan CFBundleIdentifier aplikasi. Anda dapat menemukan Bundle Identifier di tab General untuk target utama aplikasi Anda di Xcode.
  • Untuk Android: Gunakan applicationId aplikasi . Anda dapat menemukan applicationId di file build.gradle tingkat aplikasi Anda.
Versi aplikasi Untuk nilai string:
sama persis,
mengandung,
tidak mengandung,
ekspresi reguler

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

Tentukan versi aplikasi Anda yang akan ditargetkan.

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

Untuk platform Apple: Gunakan aplikasi CFBundleShortVersionString .

Catatan: Pastikan aplikasi Apple Anda menggunakan Firebase Apple platform SDK versi 6.24.0 atau lebih tinggi, karena CFBundleShortVersionString tidak dikirim di versi sebelumnya (lihat catatan rilis ).

Untuk Android: Gunakan versionName aplikasi.

Perbandingan string untuk aturan ini peka huruf besar-kecil. Saat menggunakan operator ekspresi reguler yang 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 bisa cocok dengan semua atau sebagian dari string versi target. Anda juga dapat menggunakan jangkar ^ dan $ untuk mencocokkan awal, akhir, atau keseluruhan string target.

Nomor pembuatan Untuk nilai string:
sama persis,
mengandung,
tidak mengandung,
ekspresi reguler

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

Tentukan build aplikasi Anda yang akan ditargetkan.

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

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

Saat menggunakan operator ekspresi reguler yang 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 bisa cocok dengan semua atau sebagian dari string versi target. Anda juga dapat menggunakan jangkar ^ dan $ untuk mencocokkan 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 proyek Firebase Anda.

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

Tentukan browser yang akan ditargetkan.

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

Aturan ini dievaluasi menjadi true untuk instance aplikasi Web tertentu jika browser dan versinya cocok dengan nilai target dalam daftar yang ditentukan.
Kategori perangkat adalah, bukan seluler Aturan ini mengevaluasi apakah perangkat yang mengakses aplikasi web Anda adalah seluler atau non-seluler (desktop atau konsol). Jenis aturan ini hanya tersedia untuk aplikasi web.
Bahasa ada di dalam Pilih satu atau beberapa bahasa. Aturan ini dievaluasi menjadi true untuk instance aplikasi tertentu jika instance aplikasi tersebut diinstal pada perangkat yang menggunakan salah satu bahasa yang tercantum.
Negara/Wilayah ada di dalam Pilih satu atau beberapa wilayah atau negara. Aturan ini dievaluasi menjadi true untuk instance aplikasi tertentu jika instance berada di salah satu wilayah 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 dengan Firebase).
Audiens pengguna Termasuk setidaknya satu Pilih satu atau beberapa dari daftar audiens Google Analytics yang telah Anda siapkan untuk proyek Anda.

Aturan ini memerlukan aturan ID Aplikasi untuk memilih aplikasi yang terkait dengan proyek Firebase Anda.

Catatan: Karena banyak audiens Analytics ditentukan oleh peristiwa atau properti pengguna, yang dapat didasarkan pada tindakan pengguna aplikasi, mungkin diperlukan beberapa waktu agar aturan Pengguna dalam audiens diterapkan untuk instance aplikasi tertentu.

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

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

Catatan: Di klien, Anda hanya dapat menetapkan nilai string untuk properti pengguna. Untuk kondisi yang menggunakan operator numerik, Remote Config mengonversi nilai properti pengguna yang sesuai menjadi integer/float.
Pilih dari daftar properti pengguna Google Analytics yang tersedia. Untuk mempelajari cara menggunakan properti pengguna guna menyesuaikan aplikasi untuk segmen basis pengguna yang sangat spesifik, lihat Remote Config dan properti pengguna .

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

Saat menggunakan operator ekspresi reguler yang 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 bisa cocok dengan semua atau sebagian dari string versi target. Anda juga dapat menggunakan jangkar ^ dan $ untuk mencocokkan awal, akhir, atau keseluruhan string target.

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

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

Setiap instance aplikasi secara terus-menerus dipetakan ke bilangan bulat atau pecahan acak, sesuai dengan kunci yang ditentukan dalam proyek itu. Aturan akan menggunakan kunci default (ditampilkan sebagai DEF di Firebase console) kecuali Anda memilih atau membuat kunci lain. Anda dapat mengembalikan aturan untuk menggunakan kunci default dengan mengosongkan bidang Acak pengguna menggunakan kunci ini . 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 instance aplikasi baru yang ditetapkan secara acak untuk rentang persentase tertentu dengan membuat kunci baru.

Misalnya, untuk membuat dua ketentuan terkait yang masing-masing berlaku untuk 5% pengguna aplikasi yang tidak tumpang tindih, Anda dapat memiliki satu ketentuan yang menyertakan aturan <= 5% , dan ketentuan lainnya menyertakan aturan > 5% dan <= 10% aturan. Untuk memungkinkan beberapa pengguna muncul secara acak di kedua grup, gunakan kunci yang berbeda untuk aturan di setiap kondisi.

Segmen yang diimpor ada di dalam Pilih satu atau beberapa segmen yang diimpor. Aturan ini memerlukan penyiapan segmen impor khusus .
Tanggal Waktu Sebelum setelah Tanggal dan waktu tertentu, baik dalam zona waktu perangkat atau zona waktu tertentu seperti "(GMT+11) waktu Sydney." Membandingkan waktu saat ini dengan waktu pengambilan perangkat.
ID penginstalan ada di dalam Tentukan satu atau lebih ID Instalasi (hingga 50) untuk ditargetkan. Aturan ini dievaluasi menjadi true untuk penginstalan tertentu jika ID penginstalan tersebut ada dalam daftar nilai yang dipisahkan koma.

Untuk mempelajari cara mendapatkan ID penginstalan, lihat Mengambil pengidentifikasi klien .

Mencari parameter dan kondisi

Anda dapat menelusuri kunci parameter, nilai parameter, dan ketentuan proyek Anda dari Firebase console menggunakan kotak telusur di bagian atas tab Parameter Remote Config.

Batas pada parameter dan kondisi

Dalam proyek Firebase, Anda dapat memiliki hingga 2000 parameter, dan hingga 500 ketentuan. Kunci parameter dapat berisi hingga 256 karakter, harus dimulai dengan garis bawah atau karakter huruf Inggris (AZ, az), dan juga dapat menyertakan angka. Panjang total string nilai parameter dalam proyek 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 ketentuan individual, Anda dapat:

  • Lihat nama pengguna yang terakhir mengubah parameter atau kondisi.

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

  • Jika perubahan terjadi satu hari atau lebih di masa lalu, lihat tanggal saat perubahan dipublikasikan ke template Remote Config yang aktif.

Pembaruan parameter

Pada halaman Parameter Remote Config, kolom Terakhir diterbitkan menunjukkan pengguna terakhir yang mengubah setiap parameter dan tanggal publikasi terakhir untuk perubahan:

  • Untuk melihat perubahan metadata untuk parameter yang dikelompokkan, perluas grup parameter.

  • Untuk mengurutkan dalam urutan menaik atau menurun menurut tanggal publikasi, klik label kolom yang terakhir diterbitkan .

Pembaruan kondisi

Pada halaman Ketentuan Remote Config, Anda dapat melihat pengguna terakhir yang mengubah ketentuan dan tanggal mereka mengubahnya di sebelah Terakhir diubah di bawah setiap ketentuan.

Langkah selanjutnya

Untuk mulai mengonfigurasi proyek Firebase Anda, lihat Menyiapkan Proyek Konfigurasi Jarak Jauh Firebase .