Anda dapat menggunakan Firebase Remote Config untuk menetapkan parameter dalam aplikasi dan memperbarui nilainya di cloud, sehingga Anda dapat memodifikasi tampilan dan perilaku aplikasi tanpa mendistribusikan update aplikasi. Panduan ini akan menuntun Anda menjalankan langkah-langkah untuk memulai dan menyediakan beberapa kode contoh, yang semuanya dapat di-clone atau didownload dari repositori GitHub firebase/quickstart-android.
Menambahkan Firebase dan Remote Config SDK ke aplikasi Anda
Tambahkan Firebase ke project Android jika Anda belum melakukannya.
Untuk Remote Config, Google Analytics diperlukan untuk penargetan bersyarat instance aplikasi ke properti pengguna, audience, dan Firebase Predictions. Pastikan Anda mengaktifkan Google Analytics di project Anda.
Dengan menggunakan Firebase Android BoM, deklarasikan dependensi untuk library Android Remote Config di file Gradle modul (level aplikasi) (biasanya
app/build.gradle
).Selain itu, sebagai bagian dari penyiapan Analytics, Anda perlu menambahkan Firebase SDK untuk Google Analytics ke aplikasi Anda.
Java
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:26.5.0') // Declare the dependencies for the Remote Config and Analytics libraries // When using the BoM, you don't specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-config' implementation 'com.google.firebase:firebase-analytics' }
Dengan menggunakan Firebase Android BoM, aplikasi Anda akan selalu menggunakan versi library Android Firebase yang kompatibel.
(Alternatif) Deklarasikan dependensi library Firebase tanpa menggunakan BoM
Jika memilih untuk tidak menggunakan Firebase BoM, Anda harus menentukan setiap versi library Firebase di baris dependensinya.
Perhatikan bahwa jika Anda menggunakan beberapa library Firebase di aplikasi Anda, sebaiknya gunakan BoM untuk mengelola versi library, yang memastikan bahwa semua versi kompatibel.
dependencies { // Declare the dependencies for the Remote Config and Analytics libraries // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-config:20.0.3' implementation 'com.google.firebase:firebase-analytics:18.0.2' }
Kotlin+KTX
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:26.5.0') // Declare the dependencies for the Remote Config and Analytics libraries // When using the BoM, you don't specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-config-ktx' implementation 'com.google.firebase:firebase-analytics-ktx' }
Dengan menggunakan Firebase Android BoM, aplikasi Anda akan selalu menggunakan versi library Android Firebase yang kompatibel.
(Alternatif) Deklarasikan dependensi library Firebase tanpa menggunakan BoM
Jika memilih untuk tidak menggunakan Firebase BoM, Anda harus menentukan setiap versi library Firebase di baris dependensinya.
Perhatikan bahwa jika Anda menggunakan beberapa library Firebase di aplikasi Anda, sebaiknya gunakan BoM untuk mengelola versi library, yang memastikan bahwa semua versi kompatibel.
dependencies { // Declare the dependencies for the Remote Config and Analytics libraries // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-config-ktx:20.0.3' implementation 'com.google.firebase:firebase-analytics-ktx:18.0.2' }
Mendapatkan objek tunggal Remote Config
Dapatkan instance objek Remote Config dan tetapkan interval pengambilan minimum agar dapat direfresh lebih sering:
Java
mFirebaseRemoteConfig = FirebaseRemoteConfig.getInstance(); FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder() .setMinimumFetchIntervalInSeconds(3600) .build(); mFirebaseRemoteConfig.setConfigSettingsAsync(configSettings);
Kotlin+KTX
remoteConfig = Firebase.remoteConfig val configSettings = remoteConfigSettings { minimumFetchIntervalInSeconds = 3600 } remoteConfig.setConfigSettingsAsync(configSettings)
Objek tunggal 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.
Menetapkan parameter value default dalam aplikasi
Anda bisa menetapkan parameter value default dalam aplikasi pada objek Remote Config agar aplikasi Anda berperilaku seperti yang diharapkan sebelum terhubung ke backend Remote Config, dan agar parameter value default tersebut tersedia jika tidak ada nilai yang ditetapkan pada backend.
- Tetapkan satu set nama parameter dan parameter value default menggunakan objek
Map atau
file resource XML
yang tersimpan di folder
res/xml
aplikasi Anda. Aplikasi contoh quickstart Remote Config menggunakan file XML untuk menetapkan nama dan parameter value default. - Tambahkan nilai ini ke objek Remote Config menggunakan setDefaultsAsync(int), seperti yang ditunjukkan berikut ini:
Java
mFirebaseRemoteConfig.setDefaultsAsync(R.xml.remote_config_defaults);
Kotlin+KTX
remoteConfig.setDefaultsAsync(R.xml.remote_config_defaults)
Mendapatkan parameter value yang akan digunakan dalam aplikasi Anda
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 terkonfigurasi menggunakan setDefaultsAsync(int). Untuk mendapatkan nilai ini, panggil metode yang terdaftar di bawah ini sesuai jenis data yang diharapkan oleh aplikasi Anda, dengan kunci parameter sebagai argumen:
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 logika bersyarat atau penargetan pengguna yang diinginkan. Bagian ini akan menuntun Anda menjalankan langkah-langkah di 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 bersyarat. Untuk mempelajari lebih lanjut, lihat Parameter dan Kondisi Remote Config.
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.
Untuk membuat parameter value yang diambil tersedia untuk aplikasi Anda, panggil metode activate().
Jika Anda ingin mengambil dan mengaktifkan nilai dalam satu panggilan, Anda dapat menggunakan permintaan
fetchAndActivate()
untuk mengambil nilai dari backend Remote Config dan membuatnya tersedia untuk aplikasi:Java
mFirebaseRemoteConfig.fetchAndActivate() .addOnCompleteListener(this, new OnCompleteListener<Boolean>() { @Override public void onComplete(@NonNull Task<Boolean> task) { if (task.isSuccessful()) { boolean updated = task.getResult(); Log.d(TAG, "Config params updated: " + updated); Toast.makeText(MainActivity.this, "Fetch and activate succeeded", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(MainActivity.this, "Fetch failed", Toast.LENGTH_SHORT).show(); } displayWelcomeMessage(); } });
Kotlin+KTX
remoteConfig.fetchAndActivate() .addOnCompleteListener(this) { task -> if (task.isSuccessful) { val updated = task.result Log.d(TAG, "Config params updated: $updated") Toast.makeText(this, "Fetch and activate succeeded", Toast.LENGTH_SHORT).show() } else { Toast.makeText(this, "Fetch failed", Toast.LENGTH_SHORT).show() } displayWelcomeMessage() }
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 Anda. 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 akan di-throttle dan SDK akan menampilkan
FirebaseRemoteConfigFetchThrottledException
. Sebelum SDK versi 17.0.0,
batasnya adalah 5 permintaan pengambilan dalam jangka waktu 60 menit
(versi lebih baru memiliki batas lebih permisif).
Selama pengembangan aplikasi, sebaiknya Anda sering mengambil dan mengaktifkan konfigurasi
(beberapa kali per jam) agar 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 objek FirebaseRemoteConfigSettings
dengan interval
pengambilan minimum yang rendah (setMinimumFetchIntervalInSeconds
) ke dalam aplikasi Anda untuk sementara.
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. Secara khusus, interval pengambilan minimum ditentukan dalam urutan sebagai berikut:
- Parameter di
fetch(long)
- Parameter di
FirebaseRemoteConfigSettings.setMinimumFetchIntervalInSeconds(long)
- Nilai default 12 jam
Untuk menetapkan interval pengambilan minimum ke nilai kustom, gunakan FirebaseRemoteConfigSettings.Builder.setMinimumFetchIntervalInSeconds(long)
.
Langkah berikutnya
Pelajari kasus penggunaan Remote Config jika Anda belum melakukannya, dan lihat beberapa konsep utama serta dokumentasi strategi lanjutan, termasuk: