Buka konsol

Panduan Aplikasi Contoh 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:18.0.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 menetapkan interval pengambilan minimum agar dapat direfresh lebih sering:

Java

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

Kotlin

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

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

Java

mFirebaseRemoteConfig.setDefaults(R.xml.remote_config_defaults);

Kotlin

remoteConfig.setDefaults(R.xml.remote_config_defaults)

Kini, contoh tersebut akan membuat 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()
        }

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

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

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"
}

Throttling

Jika aplikasi terlalu sering melakukan pengambilan dalam jangka waktu yang singkat, panggilan pengambilan dapat dibatasi. Dalam kasus seperti itu, SDK akan menampilkan FirebaseRemoteConfigFetchThrottledException.

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 cepat pada project dengan 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. Artinya, konfigurasi tidak akan diambil dari backend lebih dari sekali dalam jangka waktu 12 jam, terlepas dari berapa banyak panggilan pengambilan yang sebenarnya dibuat. Secara khusus, interval pengambilan minimum ditentukan dalam urutan sebagai berikut:

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

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

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: