Panduan Aplikasi Sampel Android Firebase Remote Config

Panduan ini menuntun Anda menyelesaikan langkah-langkah yang diperlukan untuk mengintegrasikan Remote Config ke dalam aplikasi Android. Untuk mempelajari lebih lanjut tentang API Remote Config untuk Android, lihat com.google.firebase.remoteconfig.

Persyaratan

Siapkan project Anda menggunakan petunjuk yang tersedia di Menambahkan Firebase ke project Android Anda.

Selanjutnya, tambahkan dependensi berikut ke build.gradle modul aplikasi Anda:

    implementation 'com.google.firebase:firebase-config:16.3.0'

Membuat project Remote Config untuk contoh panduan mulai cepat

Contoh panduan mulai cepat menunjukkan contoh penggunaan Remote Config untuk mengatur pesan sambutan pada aplikasi contoh. Sebelum menjalankan contoh panduan mulai cepat, sebaiknya siapkan project Remote Config.

Di Firebase console, klik Buat Project Baru, lalu ikuti petunjuk untuk Menyiapkan Project Firebase Remote Config dengan parameter berikut:

Kunci parameter Nilai default Catatan:
welcome_message Welcome to this sample app Ubahlah untuk menggunakan pesan sambutan yang berbeda.
welcome_message_caps false Setel ke true agar pesan sambutan ditampilkan dalam huruf besar semua.

Setelah mengonfigurasi project, jalankan contoh panduan mulai cepat untuk melihat pesan sambutan yang Anda tentukan di Firebase console. Anda dapat mengubah nilai parameter ini pada project, lalu tap Ambil Remote Config pada contoh panduan mulai cepat untuk melihat cara untuk mengupdate aplikasi dengan Remote Config.

Membuat dan menjalankan contoh panduan mulai cepat

  1. Download kode contoh panduan mulai cepat dan unzip.
  2. Buka Android Studio.
  3. Pilih File > Buka, arahkan ke lokasi penyimpanan contoh kode yang telah diekstrak, lalu buka folder Config.
  4. Buat dan jalankan contoh.

Cara Kerjanya

Pertama, sampel mendapatkan instance objek Remote Config dan mengaktifkan mode developer agar cache dapat direfresh lebih sering:

Java
Android

mFirebaseRemoteConfig = FirebaseRemoteConfig.getInstance();
FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder()
        .setDeveloperModeEnabled(BuildConfig.DEBUG)
        .build();
mFirebaseRemoteConfig.setConfigSettings(configSettings);

Kotlin
Android

remoteConfig = FirebaseRemoteConfig.getInstance()
val configSettings = FirebaseRemoteConfigSettings.Builder()
        .setDeveloperModeEnabled(BuildConfig.DEBUG)
        .build()
remoteConfig.setConfigSettings(configSettings)

Kemudian, sampel menentukan nilai default dalam aplikasi melalui file XML:

Java
Android

mFirebaseRemoteConfig.setDefaults(R.xml.remote_config_defaults);

Kotlin
Android

remoteConfig.setDefaults(R.xml.remote_config_defaults)

Sekarang, sampel akan membuat permintaan fetch() untuk mengambil nilai dari Remote Config Server dan memanggil activateFetched(), agar aplikasi dapat menggunakan nilai tersebut:

Java
Android

// cacheExpirationSeconds is set to cacheExpiration here, indicating the next fetch request
// will use fetch data from the Remote Config service, rather than cached parameter values,
// if cached parameter values are more than cacheExpiration seconds old.
// See Best Practices in the README for more information.
mFirebaseRemoteConfig.fetch(cacheExpiration)
        .addOnCompleteListener(this, new OnCompleteListener<Void>() {
            @Override
            public void onComplete(@NonNull Task<Void> task) {
                if (task.isSuccessful()) {
                    Toast.makeText(MainActivity.this, "Fetch Succeeded",
                            Toast.LENGTH_SHORT).show();

                    // After config data is successfully fetched, it must be activated before newly fetched
                    // values are returned.
                    mFirebaseRemoteConfig.activateFetched();
                } else {
                    Toast.makeText(MainActivity.this, "Fetch Failed",
                            Toast.LENGTH_SHORT).show();
                }
                displayWelcomeMessage();
            }
        });

Kotlin
Android

// cacheExpirationSeconds is set to cacheExpiration here, indicating the next fetch request
// will use fetch data from the Remote Config service, rather than cached parameter values,
// if cached parameter values are more than cacheExpiration seconds old.
// See Best Practices in the README for more information.
remoteConfig.fetch(cacheExpiration)
        .addOnCompleteListener(this) { task ->
            if (task.isSuccessful) {
                Toast.makeText(this, "Fetch Succeeded",
                        Toast.LENGTH_SHORT).show()

                // After config data is successfully fetched, it must be activated before newly fetched
                // values are returned.
                remoteConfig.activateFetched()
            } else {
                Toast.makeText(this, "Fetch Failed",
                        Toast.LENGTH_SHORT).show()
            }
            displayWelcomeMessage()
        }

Anda dapat mengakses nilai konfigurasi dengan memanggil salah satu metode get<type> yang tersedia (misalnya, getLong) pada objek FirebaseRemoteConfig yang diteruskan ke callback.

Setelah pesan sambutan diperbarui, Anda bisa menampilkannya di aplikasi:

Java
Android

private void displayWelcomeMessage() {
    String welcomeMessage = mFirebaseRemoteConfig.getString(WELCOME_MESSAGE_KEY);
    if (mFirebaseRemoteConfig.getBoolean(WELCOME_MESSAGE_CAPS_KEY)) {
        mWelcomeTextView.setAllCaps(true);
    } else {
        mWelcomeTextView.setAllCaps(false);
    }
    mWelcomeTextView.setText(welcomeMessage);
}

Kotlin
Android

private fun displayWelcomeMessage() {
    val welcomeMessage = remoteConfig.getString(WELCOME_MESSAGE_KEY)
    welcomeTextView.isAllCaps = remoteConfig.getBoolean(WELCOME_MESSAGE_CAPS_KEY)
    welcomeTextView.text = welcomeMessage
}

companion object {

    private const val TAG = "MainActivity"

    // Remote Config keys
    private const val LOADING_PHRASE_CONFIG_KEY = "loading_phrase"
    private const val WELCOME_MESSAGE_KEY = "welcome_message"
    private const val WELCOME_MESSAGE_CAPS_KEY = "welcome_message_caps"
}

Caching dan throttling

Remote Config memasukkan nilai ke cache lokal setelah pengambilan pertama yang berhasil. Secara default, cache berakhir setelah 12 jam, tetapi Anda dapat mengubah masa berakhir cache untuk pengambilan tertentu dengan meneruskan masa berakhir cache yang diinginkan ke metode fetch. Jika nilai pada cache lebih tua daripada masa berakhir cache yang diinginkan, Remote Config akan meminta nilai konfigurasi baru dari layanan. Jika aplikasi Anda meminta nilai baru menggunakan fetch beberapa kali, permintaan akan dihambat dan aplikasi Anda akan diberi nilai yang telah dimasukkan ke cache.

Selama pengembangan aplikasi, sebaiknya Anda sering merefresh cache (beberapa kali per jam) agar dapat melakukan iterasi dengan cepat ketika mengembangkan dan menguji aplikasi. Untuk mengakomodasi iterasi yang sangat cepat pada sebuah project dengan tim developer yang berisi hingga 10 orang, Anda dapat menambahkan objek FirebaseRemoteConfigSettings untuk sementara dan menetapkan isDeveloperModeEnabled ke true pada aplikasi Anda, sehingga mengubah setelan caching untuk objek FirebaseRemoteConfig.

Langkah Berikutnya

Setelah mencoba sampel quickstart dan mendapatkan pemahaman tentang cara kerja API, Anda dapat meninjau topik Remote Config lanjutan seperti menerapkan update Remote Config secara real time dan menggunakan REST API. Lihat resource ini:

Kirim masukan tentang...

Butuh bantuan? Kunjungi halaman dukungan kami.