Mulai Menggunakan Firebase Remote Config


Anda dapat menggunakan Firebase Remote Config untuk menetapkan parameter dalam aplikasi dan memperbarui nilainya di cloud, yang memungkinkan Anda untuk memodifikasi tampilan dan perilaku aplikasi tanpa mendistribusikan update aplikasi. Panduan ini akan menuntun Anda menjalankan langkah-langkah untuk memulai, serta menyediakan beberapa kode contoh, yang semuanya dapat di-clone atau didownload dari repositori GitHub firebase/quickstart-js.

Langkah 1: Menambahkan dan menginisialisasi Remote Config SDK

  1. Jika Anda belum melakukannya, instal Firebase JS SDK dan inisialisasi Firebase.

  2. Tambahkan Remote Config JS SDK dan lakukan inisialisasi Remote Config:

API modular web

import { initializeApp } from "firebase/app";
import { getRemoteConfig } from "firebase/remote-config";

// TODO: Replace the following with your app's Firebase project configuration
// See: https://firebase.google.com/docs/web/learn-more#config-object
const firebaseConfig = {
  // ...
};

// Initialize Firebase
const app = initializeApp(firebaseConfig);


// Initialize Remote Config and get a reference to the service
const remoteConfig = getRemoteConfig(app);

API dengan namespace web

import firebase from "firebase/compat/app";
import "firebase/compat/remote-config";

// TODO: Replace the following with your app's Firebase project configuration
// See: https://firebase.google.com/docs/web/learn-more#config-object
const firebaseConfig = {
  // ...
};

// Initialize Firebase
firebase.initializeApp(firebaseConfig);


// Initialize Remote Config and get a reference to the service
const remoteConfig = firebase.remoteConfig();

Objek ini digunakan untuk menyimpan parameter value default dalam aplikasi, mengambil parameter value terbaru dari backend Remote Config, dan mengontrol kapan value yang diambil akan tersedia untuk aplikasi Anda.

Langkah 2: Menetapkan interval pengambilan minimum

Selama pengembangan, sebaiknya tetapkan interval pengambilan minimum yang relatif rendah. Baca Throttling untuk mengetahui informasi selengkapnya.

API modular web

remoteConfig.settings.minimumFetchIntervalMillis = 3600000;

API dengan namespace web

remoteConfig.settings.minimumFetchIntervalMillis = 3600000;

Langkah 3: Menetapkan parameter value default dalam aplikasi

Anda bisa menetapkan parameter value default dalam aplikasi di objek Remote Config agar aplikasi Anda berperilaku seperti yang diharapkan sebelum terhubung ke backend Remote Config, dan agar ada value default yang tersedia jika tidak ada value yang ditetapkan pada backend.

API modular web

remoteConfig.defaultConfig = {
  "welcome_message": "Welcome"
};

API dengan namespace web

remoteConfig.defaultConfig = {
  "welcome_message": "Welcome"
};

Jika sudah mengonfigurasi parameter value backend Remote Config, Anda dapat mendownload file JSON yang dihasilkan yang mencakup semua value default dan menyertakannya dalam app bundle:

REST

curl --compressed -D headers -H "Authorization: Bearer token" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig:downloadDefaults?format=JSON -o remote_config_defaults.json

Firebase console

  1. Di tab Parameters, buka Menu, lalu pilih Download default values.
  2. Jika diminta, aktifkan .json for web, lalu klik Download file.

Contoh berikut menunjukkan dua cara berbeda untuk mengimpor dan menetapkan nilai default di aplikasi Anda. Contoh pertama menggunakan fetch, yang akan membuat permintaan HTTP ke file default yang disertakan dalam app bundle Anda:


  const rcDefaultsFile = await fetch('remote_config_defaults.json');
  const rcDefaultsJson = await rcDefaultsFile.json();
  remoteConfig.defaultConfig = rcDefaultsJson;
  

Contoh berikutnya menggunakan require, yang mengompilasi nilai ke dalam aplikasi Anda pada waktu build:

  let rcDefaults = require('./remote_config_defaults.json');
  remoteConfig.defaultConfig = rcDefaults;

Langkah 4: Mendapatkan parameter value yang akan digunakan dalam aplikasi

Sekarang Anda bisa mendapatkan parameter value dari objek Remote Config. Jika nantinya Anda menetapkan value di backend, mengambilnya, lalu mengaktifkannya, value tersebut akan tersedia untuk aplikasi Anda. Untuk mendapatkan value ini, panggil metode getValue(), dengan kunci parameter sebagai argumen.

API modular web

import { getValue } from "firebase/remote-config";

const val = getValue(remoteConfig, "welcome_messsage");

API dengan namespace web

const val = remoteConfig.getValue("welcome_messsage");

Langkah 5: Menetapkan parameter value

Dengan menggunakan Firebase console atau API backend Remote Config, Anda dapat membuat nilai default sisi server baru yang menggantikan nilai dalam aplikasi sesuai dengan penargetan pengguna atau logika kondisional yang diinginkan. Bagian ini akan menuntun Anda menjalankan langkah-langkah di Firebase console untuk membuat nilai tersebut.

  1. Buka project Anda di Firebase console.
  2. Pilih Remote Config dari menu untuk melihat dasbor Remote Config.
  3. Tetapkan parameter dengan nama yang sama dengan parameter yang Anda tetapkan dalam aplikasi. Untuk setiap parameter, Anda dapat menetapkan nilai default (yang akan menggantikan nilai default dalam aplikasi) dan menetapkan nilai kondisional. Untuk mempelajari lebih lanjut, baca artikel Parameter dan Kondisi Remote Config.

Langkah 6: Mengambil dan mengaktifkan nilai

  1. Untuk mengambil parameter value dari backend Remote Config, panggil metode fetchConfig(). Setiap nilai yang Anda tetapkan pada backend akan diambil dan disimpan dalam cache di objek Remote Config.
  2. Agar parameter value yang diambil tersedia untuk aplikasi Anda, panggil metode activate().

Jika ingin mengambil dan mengaktifkan value dalam satu panggilan, gunakan fetchAndActivate() seperti yang ditunjukkan dalam contoh ini:

API modular web

import { fetchAndActivate } from "firebase/remote-config";

fetchAndActivate(remoteConfig)
  .then(() => {
    // ...
  })
  .catch((err) => {
    // ...
  });

API dengan namespace web

remoteConfig.fetchAndActivate()
  .then(() => {
    // ...
  })
  .catch((err) => {
    // ...
  });

Karena parameter value terbaru ini memengaruhi perilaku dan tampilan aplikasi, Anda harus mengaktifkan nilai yang diambil pada saat yang tepat untuk memastikan pengalaman yang lancar bagi pengguna, misalnya saat pengguna membuka aplikasi di waktu berikutnya. Lihat Strategi pemuatan Remote Config untuk mengetahui informasi dan contoh selengkapnya.

Throttling

Jika aplikasi terlalu sering melakukan pengambilan dalam jangka waktu yang singkat, panggilan pengambilan dapat di-throttle. Dalam kasus seperti itu, SDK akan menampilkan error FETCH_THROTTLE. Sebaiknya tangkap error ini dan coba lagi dalam mode backoff eksponensial, yakni dengan menunggu dalam interval yang lebih lama antarpermintaan pengambilan.

Selama pengembangan aplikasi, sebaiknya refresh cache sesering mungkin (berkali-kali per jam) agar Anda dapat melakukan iterasi dengan cepat ketika mengembangkan dan menguji aplikasi. Untuk mengakomodasi iterasi yang cepat pada project yang beranggotakan banyak developer, Anda dapat menambahkan properti dengan interval pengambilan minimum yang rendah (Settings.minimumFetchIntervalMillis) ke dalam aplikasi Anda untuk sementara.

Interval pengambilan produksi default dan yang disarankan untuk Remote Config adalah 12 jam. Artinya, konfigurasi tidak akan diambil dari backend lebih dari sekali dalam jangka waktu 12 jam, terlepas dari berapa banyak panggilan pengambilan yang sebenarnya dilakukan. Secara khusus, interval pengambilan minimum ditentukan dengan urutan berikut:

  1. Parameter di Settings.minimumFetchIntervalMillis
  2. Nilai default 12 jam.

Langkah berikutnya

Pelajari kasus penggunaan Remote Config jika Anda belum melakukannya, dan lihat beberapa dokumentasi strategi lanjutan dan konsep utama, termasuk: