Buka konsol

Memulai Firebase Remote Config di Android

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 sampel, yang semuanya dapat di-clone atau didownload dari repositori GitHub firebase/quickstart-android.

Menambahkan Firebase ke aplikasi

  1. Tambahkan Firebase ke project Android jika Anda belum melakukannya.

    Saat menginstal Android SDK, Anda memiliki opsi untuk menambahkan dependensi untuk Analytics. Analytics diperlukan untuk penargetan kondisional instance aplikasi Remote Config ke properti pengguna, audience, dan Firebase Predictions.

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

remoteConfig = FirebaseRemoteConfig.getInstance()val configSettings = FirebaseRemoteConfigSettings.Builder()
        .setMinimumFetchIntervalInSeconds(3600)
        .build()
remoteConfig.setConfigSettingsAsync(configSettings)

Objek tunggal ini digunakan untuk menyimpan parameter value default dalam aplikasi, mengambil parameter value terbaru dari layanan, dan mengontrol kapan nilai yang diambil akan tersedia untuk aplikasi Anda.

Selama pengembangan, sebaiknya tetapkan interval pengambilan minimum yang relatif rendah. Lihat Throttling untuk 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 layanan Remote Config, dan agar nilai default tersebut tersedia jika tidak ada nilai yang ditetapkan pada layanan.

  1. 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 panduan memulai Remote Config menggunakan file XML untuk menetapakan nama dan parameter value default.
  2. Tambahkan nilai ini ke objek Remote Config menggunakan setDefaultsAsync(int), seperti yang ditunjukkan berikut ini:

Java

mFirebaseRemoteConfig.setDefaultsAsync(R.xml.remote_config_defaults);

Kotlin

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 pada layanan Remote Config, mengambilnya, lalu mengaktifkannya, value tersebut akan tersedia untuk aplikasi Anda. Jika tidak, Anda mendapatkan parameter value dalam aplikasi yang terkonfigurasi menggunakan setDefaultsAsync(int). Untuk mendapatkan nilai ini, panggil metode yang terdaftar di bawah ini, yang memetakan ke jenis data yang diharapkan oleh aplikasi Anda, dengan kunci parameter sebagai argumen:

Menetapkan parameter value dalam layanan

Dengan menggunakan Firebase console atau REST API Remote Config, Anda dapat membuat nilai default sisi layanan baru yang menggantikan nilai dalam aplikasi sesuai logika bersyarat atau penargetan pengguna yang diinginkan. Bagian ini akan menuntun Anda untuk 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 mengganti nilai default dalam aplikasi yang sesuai) dan Anda juga dapat menetapkan nilai conditional. Untuk mempelajari lebih lanjut, lihat Parameter dan Kondisi Remote Config.

Mengambi dan mengaktifkan nilai dari layanan

  1. Untuk mengambil parameter value dari layanan Remote Config, panggil metode fetch() . Setiap nilai yang Anda tetapkan dalam layanan Remote Config akan diambil dan disimpan di objek Remote Config.
  2. 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

    remoteConfig.fetchAndActivate()
            .addOnCompleteListener(this) { task ->
                if (task.isSuccessful) {
                    val updated = task.getResult()
                    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 dibatasi 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:

  1. Parameter di fetch(long)
  2. Parameter di FirebaseRemoteConfigSettings.setMinimumFetchIntervalInSeconds(long)
  3. Nilai default 12 jam

Untuk menetapkan interval pengambilan minimum ke nilai kustom, gunakan FirebaseRemoteConfigSettings.Builder.setMinimumFetchIntervalInSeconds(long).

Langkah berikutnya

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