Anda dapat menggunakan Firebase Remote Config untuk menetapkan parameter dalam aplikasi dan memperbarui value-nya di cloud, sehingga Anda dapat memodifikasi tampilan dan perilaku aplikasi tanpa mendistribusikan update aplikasi. Panduan ini akan menuntun Anda menjalankan langkah-langkah untuk memulai, serta menyediakan beberapa kode contoh.
Langkah 1: Menambahkan Firebase dan Remote Config SDK ke aplikasi
Instal dan inisialisasi Firebase SDK untuk Flutter jika Anda belum melakukannya.
Untuk Remote Config, Google Analytics diperlukan untuk penargetan kondisional instance aplikasi ke properti pengguna dan audience. Pastikan Anda mengaktifkan Google Analytics di project Anda.
Dari direktori utama project Flutter Anda, jalankan perintah berikut untuk menginstal plugin Remote Config:
flutter pub add firebase_remote_config
Selain itu, sebagai bagian dari penyiapan Remote Config, Anda perlu menambahkan Firebase SDK untuk Google Analytics ke aplikasi Anda:
flutter pub add firebase_analytics
Build ulang project Anda:
flutter run
Jika Anda menggunakan Remote Config di macOS, aktifkan Keychain Sharing di Xcode.
Langkah 2: Mendapatkan objek singleton Remote Config
Dapatkan instance objek Remote Config dan tetapkan interval pengambilan minimum agar refresh sering terjadi:
final remoteConfig = FirebaseRemoteConfig.instance;
await remoteConfig.setConfigSettings(RemoteConfigSettings(
fetchTimeout: const Duration(minutes: 1),
minimumFetchInterval: const Duration(hours: 1),
));
Objek singleton ini digunakan untuk menyimpan parameter value default dalam aplikasi, mengambil parameter value terbaru dari backend, dan mengontrol kapan nilai yang diambil akan tersedia untuk aplikasi Anda.
Selama pengembangan, sebaiknya tetapkan interval pengambilan minimum yang relatif rendah. Baca Throttling untuk mengetahui informasi selengkapnya.
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.
await remoteConfig.setDefaults(const {
"example_param_1": 42,
"example_param_2": 3.14159,
"example_param_3": true,
"example_param_4": "Hello, world!",
});
Langkah 4: Mendapatkan parameter value yang akan digunakan dalam aplikasi
Sekarang Anda bisa mendapatkan parameter value dari objek Remote Config. Jika Anda menetapkan nilai di backend, mengambilnya, lalu mengaktifkannya, nilai tersebut akan tersedia untuk aplikasi Anda. Jika tidak, Anda akan mendapatkan parameter value dalam aplikasi yang dikonfigurasi menggunakan setDefaults()
.
Untuk mendapatkan nilai ini, panggil metode yang tercantum di bawah ini sesuai jenis data yang diharapkan oleh aplikasi Anda, dengan kunci parameter sebagai argumen:
getBool()
getDouble()
getInt()
getString()
Langkah 5: Menetapkan parameter value di backend Remote Config
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 menjelaskan langkah-langkah Firebase console untuk membuat nilai tersebut.
- Buka project Anda di Firebase console.
- Pilih Remote Config dari menu untuk melihat dasbor Remote Config.
- Tetapkan parameter dengan nama yang sama dengan parameter yang Anda tetapkan dalam aplikasi. Untuk setiap parameter, Anda dapat menetapkan nilai default (yang akan mengganti nilai default yang sesuai dalam aplikasi), dan Anda juga dapat menetapkan nilai kondisional. Untuk mempelajari lebih lanjut, baca artikel Parameter dan Kondisi Remote Config.
Langkah 6: Mengambil dan mengaktifkan nilai
Untuk mengambil parameter value dari backend Remote Config, panggil metode
fetch()
. Setiap nilai yang Anda tetapkan dalam backend akan diambil dan disimpan di objek Remote Config.Agar parameter value yang diambil tersedia untuk aplikasi Anda, panggil metode
activate()
.Jika ingin mengambil dan mengaktifkan nilai dalam satu panggilan, Anda dapat menggunakan permintaan
fetchAndActivate()
untuk mengambil nilai dari backend Remote Config dan menyediakannya untuk aplikasi:await remoteConfig.fetchAndActivate();
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.
Langkah 7: Memproses update secara real time
Setelah mengambil parameter value, Anda dapat menggunakan Remote Config real-time untuk memproses update dari backend Remote Config. Sinyal Remote Config real-time ke perangkat yang terhubung saat update tersedia dan secara otomatis mengambil perubahan setelah Anda memublikasikan versi Remote Config baru.
Perlu diperhatikan bahwa Remote Config real-time tidak tersedia untuk Web.
Di aplikasi Anda, gunakan
onConfigUpdated
untuk mulai memproses update dan otomatis mengambil parameter value baru.remoteConfig.onConfigUpdated.listen((event) async { await remoteConfig.activate(); // Use the new config values here. });
Jika kemudian Anda memublikasikan versi baru Remote Config, perangkat yang menjalankan aplikasi dan memproses perubahan akan mengaktifkan konfigurasi baru.
Throttling
Jika aplikasi terlalu sering melakukan pengambilan dalam jangka waktu yang singkat, panggilan pengambilan akan dibatasi dan nilai properti lastFetchStatus
dari FirebaseRemoteConfig
akan menjadi RemoteConfigFetchStatus.throttle
.
Interval pengambilan minimum default 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.
Selama pengembangan aplikasi, jika tidak menggunakan Remote Config real-time (yang kami
rekomendasikan), sebaiknya ambil dan aktifkan konfigurasi 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 hingga 10 developer, Anda
dapat menetapkan interval pengambilan minimum yang rendah dengan setConfigSettings()
untuk sementara.
final remoteConfig = FirebaseRemoteConfig.instance;
await remoteConfig.setConfigSettings(RemoteConfigSettings(
fetchTimeout: const Duration(minutes: 1),
minimumFetchInterval: const Duration(minutes: 5),
));
Langkah berikutnya
Pelajari kasus penggunaan Remote Config jika Anda belum melakukannya, dan lihat beberapa dokumentasi strategi lanjutan dan konsep utama, termasuk: