1. Pengantar
Terakhir diperbarui: 09-03-2021
Apa itu Firebase Remote Config?
Firebase Remote Config adalah layanan cloud yang dapat digunakan untuk mengubah perilaku dan tampilan aplikasi Anda tanpa mengharuskan pengguna mendownload update aplikasi tanpa biaya. Ketika menggunakan Remote Config, Anda membuat nilai default dalam aplikasi yang mengontrol perilaku dan tampilan aplikasi Anda. Kemudian, Anda dapat menggunakan Firebase console atau API backend Remote Config untuk mengganti nilai default dalam aplikasi untuk semua pengguna aplikasi atau segmen basis pengguna Anda. Aplikasi Anda mengontrol waktu penerapan update, dan dapat secara rutin memeriksa update serta menerapkannya dengan dampak minimal terhadap performa aplikasi.
Bagaimana cara kerjanya?
Remote Config menyertakan library klien yang menangani tugas penting seperti mengambil parameter value dan menyimpannya dalam cache, sambil tetap memberi Anda kontrol atas waktu pengaktifan value baru, sehingga dapat memengaruhi pengalaman pengguna aplikasi. Dengan begitu, Anda dapat menjaga pengalaman pengguna aplikasi dengan menentukan waktu untuk setiap perubahan.
Metode get
library klien Remote Config menyediakan titik akses tunggal untuk parameter value. Aplikasi Anda mendapatkan nilai sisi server menggunakan logika yang sama yang digunakannya untuk mendapatkan nilai default dalam aplikasi, sehingga Anda bisa menambahkan kemampuan Remote Config ke aplikasi tanpa harus menulis banyak kode.
Untuk mengganti nilai default dalam aplikasi, gunakan Firebase console atau API backend Remote Config untuk membuat parameter dengan nama yang sama dengan parameter yang digunakan di aplikasi Anda. Untuk setiap parameter, Anda bisa menyetel nilai default sisi server untuk mengganti nilai default dalam aplikasi, dan Anda juga bisa membuat nilai kondisional guna mengganti nilai default dalam aplikasi untuk instance aplikasi yang memenuhi ketentuan tertentu. Gambar ini menunjukkan cara memprioritaskan parameter value pada backend Remote Config dan aplikasi Anda:
Yang akan Anda pelajari
- Cara menerapkan Firebase Remote Config
- Cara menggunakan Firebase Remote Config untuk mengubah nilai tanpa mengupdate aplikasi
Yang Anda butuhkan
- Versi terbaru Android Studio
- Akun Firebase
- (direkomendasikan, tetapi opsional) Perangkat Android fisik untuk menjalankan aplikasi Anda
- Pengetahuan dasar tentang Java atau Kotlin
2. Mempersiapkan
(Opsional) Download kode contoh
Dalam codelab ini, Anda akan membangun aplikasi pengujian sendiri, tetapi jika ingin melihat dan menjalankan aplikasi contoh yang sudah ada, Anda dapat mendownload kode contoh panduan memulai.
Klik tombol berikut untuk mendownload semua kode untuk codelab ini:
Ekstrak file ZIP yang didownload. Tindakan ini akan mengekstrak folder root bernama quickstart-android-master
.
...atau membuat clone repositori GitHub dari command line.
$ git clone https://github.com/firebase/quickstart-android.git
Repositori berisi beberapa folder. Kita akan menggunakan folder config .
(Opsional) Mengimpor kode contoh
Luncurkan Android Studio, pilih "Import project" di layar sambutan. Kemudian, buka folder yang didownload dan pilih folder config . Lalu klik "buka".
Membuat Project Android Baru
- Di Android Studio, mulai project baru
- Pilih Aktivitas Dasar
- Di "Configure Your Project" layar:
- Beri nama project Anda. Nama paket dan lokasi Simpan akan dibuat secara otomatis untuk Anda.
- Bahasa: Java
- SDK 16 Minimum
3. Menambahkan Firebase dan Firebase Analytics ke Project Android Anda
Membuat project Firebase
Agar dapat menambahkan Firebase ke aplikasi Android, Anda perlu membuat project Firebase untuk terhubung ke aplikasi iOS. Buka bagian Memahami Project Firebase untuk mempelajari project Firebase lebih lanjut.
- Di Firebase console, klik Add project, lalu pilih atau masukkan Project name.
Jika sudah memiliki project Google Cloud Platform (GCP), Anda dapat memilih project dari menu dropdown untuk menambahkan resource Firebase ke project tersebut.
- (Opsional) Jika membuat project baru, Anda dapat mengedit Project ID.
Firebase menetapkan ID unik ke project Firebase Anda secara otomatis. Buka Memahami Project Firebase untuk mempelajari cara Firebase menggunakan project ID.
- Klik Lanjutkan.
- Siapkan Google Analytics untuk project Anda agar Anda mendapatkan pengalaman optimal menggunakan salah satu produk Firebase berikut:
- Firebase Crashlytics
- Firebase Predictions
- Firebase Cloud Messaging
- Firebase In-App Messaging
- Firebase Remote Config
- Firebase A/B Testing
Saat diminta, pilih untuk menggunakan akun Google Analytics yang ada atau membuat akun baru. Jika Anda memilih untuk membuat akun baru, pilih lokasi pelaporan Analytics, lalu setujui setelan berbagi data dan persyaratan Google Analytics untuk project Anda.
- Klik Create project (atau Add Firebase, jika Anda menggunakan project GCP yang sudah ada).
Firebase otomatis menyediakan resource untuk project Firebase Anda. Begitu selesai, Anda akan dibawa ke halaman ringkasan untuk project Firebase Anda di Firebase console.
Mendaftarkan aplikasi ke Firebase
Setelah memiliki project Firebase, Anda dapat menambahkan aplikasi Android ke dalamnya.
Buka bagian Memahami Project Firebase untuk mempelajari lebih lanjut praktik terbaik dan pertimbangan untuk menambahkan aplikasi ke project Firebase, termasuk cara menangani beberapa varian build.
- Buka Firebase console.
- Di bagian atas halaman Project Overview, klik ikon Android untuk meluncurkan alur kerja penyiapan. Jika Anda sudah menambahkan aplikasi ke project Firebase, klik Tambahkan aplikasi untuk menampilkan opsi platform.
- Masukkan nama paket aplikasi Anda di kolom Android package name.
- (Opsional) Masukkan App nickname.
- Biarkan kolom SHA-1 kosong karena SHA-1 tidak diperlukan untuk project ini.
- Klik Daftarkan aplikasi.
Menambahkan File Konfigurasi Firebase
Selanjutnya, Anda akan diminta untuk mendownload file konfigurasi yang berisi semua metadata Firebase yang diperlukan untuk aplikasi Anda. Klik Download google-services.json untuk mendapatkan file konfigurasi Android Firebase Anda (google-services.json
).
Di file Gradle level project (build.gradle
), tambahkan aturan untuk menyertakan plugin Gradle Layanan Google. Pastikan Anda juga memiliki repositori Maven Google.
Build.gradle level project (<project>/build.gradle
):
buildscript {
repositories {
// Check that you have the following line (if not, add it):
google() // Google's Maven repository
}
dependencies {
// ...
// Add the following line:
classpath 'com.google.gms:google-services:4.3.5' // Google Services plugin
}
}
allprojects {
// ...
repositories {
// Check that you have the following line (if not, add it):
google() // Google's Maven repository
// ...
}
}
Dalam file Gradle modul (level aplikasi), biasanya app/build.gradle
, terapkan plugin Gradle Layanan Google:
build.gradle tingkat aplikasi (<project>/<app-module>/build.gradle
):
apply plugin: ‘com.android.application'
// Tambahkan baris berikut:
apply plugin: ‘com.google.gms.google-services' // Plugin Layanan Google
android {
// ...
}
Menambahkan Firebase SDK ke Aplikasi Android
Untuk Remote Config, Google Analytics diperlukan untuk penargetan bersyarat dari instance aplikasi ke audiens dan properti pengguna. Pastikan Anda mengaktifkan Google Analytics di project Anda.
(Hal ini sudah dilakukan dalam contoh kode panduan memulai)
Dengan menggunakan Firebase Android BoM, deklarasikan dependensi untuk library Android Remote Config dalam file Gradle modul (level aplikasi), biasanya app/build.gradle
. Dengan menggunakan Firebase Android BoM, aplikasi Anda akan selalu menggunakan versi library Android Firebase yang kompatibel.
Selain itu, sebagai bagian dari penyiapan Analytics, Anda perlu menambahkan Firebase SDK untuk Google Analytics ke aplikasi Anda. Di bagian dependensi, tambahkan kode berikut:
app/build.gradle
dependencies {
// Import the BoM for the Firebase platform
implementation platform('com.google.firebase:firebase-bom:26.6.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'
}
Menyinkronkan project dengan file gradle
Guna memastikan bahwa semua dependensi tersedia untuk aplikasi Anda, sinkronkan project Anda dengan file gradle dengan memilih File > Menyinkronkan Project dengan File Gradle.
4. Meninjau komponen utama untuk Remote Config
Sekarang kita akan meninjau langkah-langkah untuk menggunakan Remote Config di aplikasi. Langkah-langkah ini telah diselesaikan dalam kode codelab panduan memulai. Gunakan bagian ini saat meninjau kode codelab panduan memulai untuk memahami apa yang terjadi.
1. Mendapatkan Objek Singleton Remote Config
Dapatkan instance objek Remote Config dan tetapkan interval pengambilan minimum agar dapat diperbarui lebih sering:
MainActivity.java
mFirebaseRemoteConfig = FirebaseRemoteConfig.getInstance();
FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder()
.setMinimumFetchIntervalInSeconds(3600)
.build();
mFirebaseRemoteConfig.setConfigSettingsAsync(configSettings);
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.
2. 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 ada value default yang tersedia jika tidak ada value yang ditetapkan pada backend.
Anda dapat menentukan sekumpulan nama parameter dan parameter value default menggunakan objek Map atau file resource XML yang disimpan dalam folder res/xml
aplikasi Anda. Aplikasi contoh panduan memulai Remote Config menggunakan file XML untuk menetapkan nama dan nilai parameter default. Berikut cara membuat file XML Anda sendiri:
- Buat folder
xml
di folderres
.
- Klik kanan folder
xml
yang baru dibuat, lalu buat file.
- Tetapkan nilai default. Di bagian berikutnya, Anda akan mencoba mengubah nilai default di file XML panduan memulai Remote Config.
- Tambahkan nilai ini ke objek Remote Config menggunakan setDefaultsAsync(int), seperti yang ditunjukkan di bawah ini:
MainActivity.java
mFirebaseRemoteConfig.setDefaultsAsync(R.xml.remote_config_defaults);
3. 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 setDefaultsAsync(int). Untuk mendapatkan nilai ini, panggil metode yang tercantum di bawah ini sesuai jenis data yang diharapkan oleh aplikasi Anda, dengan kunci parameter sebagai argumen:
4. Mengambil dan mengaktifkan value
- 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 pengambilanAndActivate() untuk mengambil nilai dari backend Remote Config dan menyediakannya untuk aplikasi:
MainActivity.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();
}
});
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 lagi. Lihat Strategi pemuatan Remote Config untuk 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 yang lebih baru memiliki batas yang lebih longgar).
Selama pengembangan aplikasi, sebaiknya Anda sering mengambil dan mengaktifkan konfigurasi (berkali-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
) dalam aplikasi Anda untuk sementara.
Interval pengambilan minimum default untuk Remote Config adalah 12 jam, yang berarti bahwa 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 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).
5. Mengubah perilaku aplikasi dengan Remote Config
Mengubah parameter default dalam aplikasi
Buka res/xml/remote_config_defaults.xml
dan ubah nilai default menjadi nilai lain.
res/xml/remote_config_defaults.xml
<?xml version="1.0" encoding="utf-8"?>
<!-- START xml_defaults -->
<defaultsMap>
<entry>
<key>loading_phrase</key>
<value>Fetching config...</value>
</entry>
<entry>
<key>welcome_message_caps</key>
<value>false</value>
</entry>
<entry>
<key>welcome_message</key>
<value>Welcome to my awesome app!</value>
</entry>
</defaultsMap>
<!-- END xml_defaults -->
Memverifikasi perubahan nilai default dalam aplikasi
- Jalankan project di emulator atau gunakan perangkat pengujian untuk mengonfirmasi perilaku tersebut.
- Klik Open pada versi Java atau Kotlin.
- Tinjau pesan selamat datang di tampilan utama.
Menetapkan parameter value di backend Remote Config
Sekarang, mari kita uji pengiriman nilai melalui 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 Firebase console, buka project Anda.
- Pilih Remote Config dari menu sebelah kiri di bagian Engage untuk melihat dasbor Remote Config.
- Di bagian Tambahkan parameter, masukkan
Parameter key.
PadaDefault value
tambahkan teks apa pun yang Anda inginkan. Lalu klik Tambahkan Parameter. Untuk codelab ini, kita akan menggunakan kunci parameter dalam fileres/xml/remote_config_defaults.xml
. Lihat tabel di bawah untuk mengetahui detailnya:
Kunci parameter | Nilai default ( | Deskripsi |
loading_phrase | Mengambil konfigurasi... | String; Ditampilkan saat mengambil nilai Remote Config. |
welcome_message_caps | salah | Boolean; Jika benar, ubah Welcome_message menjadi huruf besar semua |
welcome_message | Selamat datang di aplikasi hebat saya! | String; Pesan selamat datang |
Contoh screenshot:
- Setelah Anda selesai menambahkan parameter, klik "Publikasikan Perubahan".
- Jalankan lagi aplikasi Anda di emulator atau perangkat, lalu klik "Ambil Selamat Datang Jarak Jauh" tombol kali ini.
- Pesan Selamat Datang harus diperbarui berdasarkan parameter dan nilai Remote Config Anda.
6. Selamat
Selamat, Anda telah berhasil menggunakan Remote Config untuk mengubah pesan selamat datang. Ada banyak cara lain dalam menggunakan Remote Config untuk mengubah dan menyesuaikan aplikasi. Lihat referensi tambahan di bawah: