Ikuti semua informasi yang diumumkan di Firebase Summit, dan pelajari bagaimana Firebase dapat membantu Anda mempercepat pengembangan aplikasi dan menjalankan aplikasi dengan percaya diri. Pelajari Lebih Lanjut

Memulai Firebase Remote Config


Anda dapat menggunakan Firebase Remote Config untuk menentukan parameter di aplikasi Anda dan memperbarui nilainya di cloud, memungkinkan Anda mengubah tampilan dan perilaku aplikasi Anda tanpa mendistribusikan pembaruan aplikasi. Panduan ini memandu Anda melalui langkah-langkah untuk memulai dan memberikan beberapa contoh kode, yang semuanya tersedia untuk digandakan atau diunduh dari repositori firebase/quickstart-android GitHub.

Langkah 1: Tambahkan Firebase dan SDK Remote Config ke aplikasi Anda

  1. Jika Anda belum melakukannya, tambahkan Firebase ke proyek Android Anda .

  2. Untuk Remote Config, Google Analytics diperlukan untuk penargetan bersyarat instance aplikasi ke properti pengguna dan audiens. Pastikan Anda mengaktifkan Google Analytics di proyek Anda.

  3. Dalam file Gradle modul (level aplikasi) Anda (biasanya <project>/<app-module>/build.gradle ), tambahkan dependensi untuk library Android Remote Config. Kami merekomendasikan penggunaan Firebase Android BoM untuk mengontrol pembuatan versi library.

    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:31.1.0')
    
        // Add 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 pustaka Android Firebase yang kompatibel.

    (Alternatif) Tambahkan dependensi library Firebase tanpa menggunakan BoM

    Jika Anda memilih untuk tidak menggunakan Firebase BoM, Anda harus menentukan setiap versi pustaka Firebase di baris dependensinya.

    Perhatikan bahwa jika Anda menggunakan beberapa pustaka Firebase di aplikasi Anda, kami sangat menyarankan penggunaan BoM untuk mengelola versi pustaka, yang memastikan bahwa semua versi kompatibel.

    dependencies {
        // Add 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:21.2.0'
        implementation 'com.google.firebase:firebase-analytics:21.2.0'
    }
    

    Kotlin+KTX

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:31.1.0')
    
        // Add 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 pustaka Android Firebase yang kompatibel.

    (Alternatif) Tambahkan dependensi library Firebase tanpa menggunakan BoM

    Jika Anda memilih untuk tidak menggunakan Firebase BoM, Anda harus menentukan setiap versi pustaka Firebase di baris dependensinya.

    Perhatikan bahwa jika Anda menggunakan beberapa pustaka Firebase di aplikasi Anda, kami sangat menyarankan penggunaan BoM untuk mengelola versi pustaka, yang memastikan bahwa semua versi kompatibel.

    dependencies {
        // Add 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:21.2.0'
        implementation 'com.google.firebase:firebase-analytics-ktx:21.2.0'
    }
    

Langkah 2: Dapatkan objek tunggal Remote Config

Dapatkan instance objek Remote Config dan setel interval pengambilan minimum untuk memungkinkan penyegaran sering:

Java

FirebaseRemoteConfig mFirebaseRemoteConfig = FirebaseRemoteConfig.getInstance();
FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder()
        .setMinimumFetchIntervalInSeconds(3600)
        .build();
mFirebaseRemoteConfig.setConfigSettingsAsync(configSettings);

Kotlin+KTX

val remoteConfig: FirebaseRemoteConfig = Firebase.remoteConfig
val configSettings = remoteConfigSettings {
    minimumFetchIntervalInSeconds = 3600
}
remoteConfig.setConfigSettingsAsync(configSettings)

Objek tunggal digunakan untuk menyimpan nilai parameter default dalam aplikasi, mengambil nilai parameter yang diperbarui dari backend, dan mengontrol kapan nilai yang diambil tersedia untuk aplikasi Anda.

Selama pengembangan, disarankan untuk menyetel interval pengambilan minimum yang relatif rendah. Lihat Pembatasan untuk informasi lebih lanjut.

Langkah 3: Tetapkan nilai parameter default dalam aplikasi

Anda dapat menyetel nilai parameter default dalam aplikasi di objek Remote Config, sehingga aplikasi Anda berperilaku sebagaimana mestinya sebelum terhubung ke backend Remote Config, dan agar nilai default tersedia jika tidak ada yang disetel di backend.

  1. Tetapkan satu set nama parameter dan nilai parameter default menggunakan objek Peta atau file sumber daya XML yang disimpan di folder res/xml aplikasi Anda. Aplikasi contoh quickstart Remote Config menggunakan file XML untuk menentukan nama dan nilai parameter default.

    Jika Anda telah mengonfigurasi nilai parameter backend Remote Config, Anda bisa mendownload file XML yang dihasilkan yang menyertakan semua nilai default dan menyimpannya ke direktori res/xml aplikasi Anda:

    ISTIRAHAT

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

    Konsol Firebase

    1. Di tab Parameter , buka Menu , dan pilih Download default values ​​.

    2. Saat diminta, aktifkan .xml untuk Android , lalu klik Download file .

  2. Tambahkan nilai ini ke objek Remote Config menggunakan setDefaultsAsync(int) , seperti yang ditunjukkan:

    Java

    mFirebaseRemoteConfig.setDefaultsAsync(R.xml.remote_config_defaults);

    Kotlin+KTX

    remoteConfig.setDefaultsAsync(R.xml.remote_config_defaults)

Langkah 4: Dapatkan nilai parameter untuk digunakan di aplikasi Anda

Sekarang Anda bisa mendapatkan nilai parameter dari objek Remote Config. Jika Anda menyetel nilai di backend, mengambilnya, lalu mengaktifkannya, nilai tersebut tersedia untuk aplikasi Anda. Jika tidak, Anda mendapatkan nilai parameter dalam aplikasi yang dikonfigurasi menggunakan setDefaultsAsync(int) . Untuk mendapatkan nilai ini, panggil metode yang tercantum di bawah yang memetakan ke tipe data yang diharapkan oleh aplikasi Anda, berikan kunci parameter sebagai argumen:

Langkah 5: Tetapkan nilai parameter 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 kondisional atau penargetan pengguna yang diinginkan. Bagian ini menjelaskan langkah-langkah Firebase console untuk membuat nilai-nilai ini.

  1. Di konsol Firebase , buka proyek Anda.
  2. Pilih Remote Config dari menu untuk melihat dasbor Remote Config.
  3. Tentukan parameter dengan nama yang sama dengan parameter yang Anda tetapkan di aplikasi Anda. Untuk setiap parameter, Anda dapat menyetel nilai default (yang pada akhirnya akan menggantikan nilai default dalam aplikasi yang sesuai), dan Anda juga dapat menyetel nilai bersyarat. Untuk mempelajari lebih lanjut, lihat Parameter dan Ketentuan Remote Config .

Langkah 6: Ambil dan aktifkan nilai

  1. Untuk mengambil nilai parameter dari backend Remote Config, panggil metode fetch() . Setiap nilai yang Anda atur di backend akan diambil dan disimpan di objek Remote Config.
  2. Agar nilai parameter yang diambil tersedia untuk aplikasi Anda, panggil metode activate() .

    Untuk kasus saat Anda ingin mengambil dan mengaktifkan nilai dalam satu panggilan, Anda bisa 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 nilai parameter yang diperbarui ini memengaruhi perilaku dan tampilan aplikasi Anda, Anda harus mengaktifkan nilai yang diambil pada waktu yang memastikan pengalaman yang lancar bagi pengguna Anda, seperti saat pengguna membuka aplikasi Anda di lain waktu. Lihat strategi pemuatan Remote Config untuk informasi dan contoh selengkapnya.

Pelambatan

Jika aplikasi mengambil terlalu banyak dalam jangka waktu singkat, panggilan pengambilan akan dibatasi dan SDK 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 permisif).

Selama pengembangan aplikasi, Anda mungkin ingin mengambil dan mengaktifkan konfigurasi sangat sering (berkali-kali per jam) agar Anda dapat melakukan iterasi dengan cepat saat Anda mengembangkan dan menguji aplikasi. Untuk mengakomodasi iterasi cepat pada proyek dengan maksimal 10 developer, Anda dapat menyetel sementara objek FirebaseRemoteConfigSettings dengan interval pengambilan minimum yang rendah ( setMinimumFetchIntervalInSeconds ) di aplikasi Anda.

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, berapa pun jumlah panggilan pengambilan yang sebenarnya dilakukan. Khususnya, interval pengambilan minimum ditentukan dalam urutan berikut ini:

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

Untuk menyetel interval pengambilan minimum ke nilai khusus, gunakan FirebaseRemoteConfigSettings.Builder.setMinimumFetchIntervalInSeconds(long) .

Next steps

If you haven't already, explore the Remote Config use cases , and take a look at some of the key concepts and advanced strategies documentation, including: