Mengirim pesan pengujian ke aplikasi di latar belakang

Untuk mulai menggunakan FCM, coba kasus penggunaan yang paling sederhana: mengirim pesan notifikasi pengujian dari Notifications composer ke perangkat pengembangan saat aplikasi berjalan di latar belakang pada perangkat. Halaman ini membahas semua langkah untuk mencapainya, dari penyiapan hingga verifikasi. Jadi, halaman ini mungkin mencakup langkah-langkah yang telah diselesaikan ketika menyiapkan aplikasi klien Android untuk FCM.

Menyiapkan SDK

Bagian ini membahas tugas-tugas yang mungkin telah diselesaikan jika fitur Firebase lainnya telah diaktifkan untuk aplikasi Anda.

Sebelum memulai

  • Instal atau update Android Studio ke versi terbaru.

  • Pastikan project Anda memenuhi persyaratan berikut:

    • Menarget API level 19 (KitKat) atau yang lebih tinggi
    • Menggunakan Android 4.4 atau yang lebih tinggi
    • Menggunakan Jetpack (AndroidX), termasuk memenuhi persyaratan versi berikut ini:
      • com.android.tools.build:gradle v3.2.1 atau yang lebih baru
      • compileSdkVersion 28 atau yang lebih baru
  • Siapkan perangkat fisik atau gunakan emulator untuk menjalankan aplikasi Anda.
    Perhatikan bahwa Firebase SDK yang memiliki dependensi pada layanan Google Play mengharuskan layanan Google Play diinstal di perangkat atau emulator.

  • Login ke Firebase menggunakan akun Google Anda.

Jika belum memiliki project Android dan hanya ingin mencoba produk Firebase, download salah satu contoh panduan memulai.

Membuat project Firebase

Agar dapat menambahkan Firebase ke aplikasi Android, Anda perlu membuat project Firebase yang akan dihubungkan ke aplikasi Android. Buka bagian Memahami Project Firebase untuk mempelajari project Firebase lebih lanjut.

Mendaftarkan aplikasi ke Firebase

Untuk menggunakan Firebase di aplikasi Android, Anda perlu mendaftarkan aplikasi ke project Firebase. Mendaftarkan aplikasi sering kali disebut sebagai "menambahkan" aplikasi ke project Anda.

  1. Buka Firebase console.

  2. Di bagian tengah halaman ringkasan project, klik ikon Android () atau Add app untuk meluncurkan alur kerja penyiapan.

  3. Masukkan nama paket aplikasi Anda di kolom Android package name.

  4. (Opsional) Masukkan informasi aplikasi yang lain: App nickname dan Debug signing certificate SHA-1.

  5. Klik Register app.

Menambahkan file konfigurasi Firebase

  1. Download, lalu tambahkan file konfigurasi Android Firebase (google-services.json) ke aplikasi Anda:

    1. Klik Download google-services.json untuk mendapatkan file konfigurasi Android Firebase Anda.

    2. Pindahkan file konfigurasi ke direktori root modul (level aplikasi) aplikasi Anda.

  2. Agar nilai dalam file konfigurasi google-services.json Anda dapat diakses oleh Firebase SDK, Anda memerlukan plugin Gradle layanan Google (google-services).

    1. Dalam file Gradle level root (level project), <project>/build.gradle, tambahkan plugin layanan Google sebagai dependensi buildscript:

      buildscript {
      
          repositories {
            // Make sure that you have the following two repositories
            google()  // Google's Maven repository
            mavenCentral()  // Maven Central repository
          }
      
          dependencies {
            ...
      
            // Add the dependency for the Google services Gradle plugin
            classpath 'com.google.gms:google-services:4.3.15'
          }
      }
      
      allprojects {
        ...
      
        repositories {
          // Make sure that you have the following two repositories
          google()  // Google's Maven repository
          mavenCentral()  // Maven Central repository
        }
      }
      
    2. Dalam file Gradle modul (level aplikasi), biasanya <project>/<app-module>/build.gradle, tambahkan plugin layanan Google:

      plugins {
          id 'com.android.application'
      
          // Add the Google services Gradle plugin
          id 'com.google.gms.google-services'
          ...
      }
      

Menambahkan Firebase SDK ke aplikasi

  1. Dalam file Gradle modul (level aplikasi), biasanya <project>/<app-module>/build.gradle, tambahkan dependensi untuk library Android Firebase Cloud Messaging. Sebaiknya gunakan Firebase Android BoM untuk mengontrol pembuatan versi library.

    Untuk mendapatkan pengalaman yang optimal saat menggunakan Firebase Cloud Messaging, sebaiknya aktifkan Google Analytics di project Firebase dan tambahkan Firebase SDK untuk Google Analytics ke aplikasi Anda.

    Java

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:32.1.0')
    
        // Add the dependencies for the Firebase Cloud Messaging and Analytics libraries
        // When using the BoM, you don't specify versions in Firebase library dependencies
        implementation 'com.google.firebase:firebase-messaging'
        implementation 'com.google.firebase:firebase-analytics'
    }
    

    Dengan menggunakan Firebase Android BoM, aplikasi Anda akan selalu menggunakan versi library Android Firebase yang kompatibel.

    (Alternatif) Tambahkan dependensi library Firebase tanpa menggunakan BoM

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

    Perlu diperhatikan bahwa jika Anda menggunakan beberapa library Firebase di aplikasi, sebaiknya gunakan BoM untuk mengelola versi library, yang memastikan bahwa semua versi kompatibel.

    dependencies {
        // Add the dependencies for the Firebase Cloud Messaging and Analytics libraries
        // When NOT using the BoM, you must specify versions in Firebase library dependencies
        implementation 'com.google.firebase:firebase-messaging:23.1.2'
        implementation 'com.google.firebase:firebase-analytics:21.3.0'
    }
    

    Kotlin+KTX

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:32.1.0')
    
        // Add the dependencies for the Firebase Cloud Messaging and Analytics libraries
        // When using the BoM, you don't specify versions in Firebase library dependencies
        implementation 'com.google.firebase:firebase-messaging-ktx'
        implementation 'com.google.firebase:firebase-analytics-ktx'
    }
    

    Dengan menggunakan Firebase Android BoM, aplikasi Anda akan selalu menggunakan versi library Android Firebase yang kompatibel.

    (Alternatif) Tambahkan dependensi library Firebase tanpa menggunakan BoM

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

    Perlu diperhatikan bahwa jika Anda menggunakan beberapa library Firebase di aplikasi, sebaiknya gunakan BoM untuk mengelola versi library, yang memastikan bahwa semua versi kompatibel.

    dependencies {
        // Add the dependencies for the Firebase Cloud Messaging and Analytics libraries
        // When NOT using the BoM, you must specify versions in Firebase library dependencies
        implementation 'com.google.firebase:firebase-messaging-ktx:23.1.2'
        implementation 'com.google.firebase:firebase-analytics-ktx:21.3.0'
    }
    

  2. Sinkronkan project Android Anda dengan file Gradle.

Mengakses token pendaftaran

Untuk mengirim pesan ke perangkat tertentu, Anda perlu mengetahui token pendaftaran perangkat tersebut. Karena Anda harus memasukkan token ke suatu kolom di Notifications console agar dapat menyelesaikan tutorial ini, pastikan Anda menyalin token atau menyimpannya dengan aman setelah mengambilnya.

Saat aplikasi dijalankan untuk pertama kalinya, FCM SDK akan menghasilkan token pendaftaran untuk instance aplikasi klien. Jika ingin menarget satu perangkat atau membuat grup perangkat, Anda harus mengakses token ini dengan menyediakan FirebaseMessagingService dan mengganti onNewToken.

Bagian ini menjelaskan cara mengambil token dan memantau perubahan token. Karena token bisa dirotasi setelah aplikasi dijalankan untuk pertama kalinya, sebaiknya ambil token pendaftaran terbaru.

Token pendaftaran dapat berubah jika:

  • Aplikasi dipulihkan di perangkat baru
  • Pengguna melakukan uninstal/instal ulang aplikasi
  • Pengguna menghapus data aplikasi.

Mengambil token pendaftaran saat ini

Jika perlu mengambil token saat ini, panggil FirebaseMessaging.getInstance().getToken():

Kotlin+KTX

FirebaseMessaging.getInstance().token.addOnCompleteListener(OnCompleteListener { task ->
    if (!task.isSuccessful) {
        Log.w(TAG, "Fetching FCM registration token failed", task.exception)
        return@OnCompleteListener
    }

    // Get new FCM registration token
    val token = task.result

    // Log and toast
    val msg = getString(R.string.msg_token_fmt, token)
    Log.d(TAG, msg)
    Toast.makeText(baseContext, msg, Toast.LENGTH_SHORT).show()
})

Java

FirebaseMessaging.getInstance().getToken()
    .addOnCompleteListener(new OnCompleteListener<String>() {
        @Override
        public void onComplete(@NonNull Task<String> task) {
          if (!task.isSuccessful()) {
            Log.w(TAG, "Fetching FCM registration token failed", task.getException());
            return;
          }

          // Get new FCM registration token
          String token = task.getResult();

          // Log and toast
          String msg = getString(R.string.msg_token_fmt, token);
          Log.d(TAG, msg);
          Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show();
        }
    });

Memantau pembuatan token

Callback onNewToken diaktifkan setiap kali token baru dibuat.

Kotlin+KTX

/**
 * Called if the FCM registration token is updated. This may occur if the security of
 * the previous token had been compromised. Note that this is called when the
 * FCM registration token is initially generated so this is where you would retrieve the token.
 */
override fun onNewToken(token: String) {
    Log.d(TAG, "Refreshed token: $token")

    // If you want to send messages to this application instance or
    // manage this apps subscriptions on the server side, send the
    // FCM registration token to your app server.
    sendRegistrationToServer(token)
}

Java

/**
 * There are two scenarios when onNewToken is called:
 * 1) When a new token is generated on initial app startup
 * 2) Whenever an existing token is changed
 * Under #2, there are three scenarios when the existing token is changed:
 * A) App is restored to a new device
 * B) User uninstalls/reinstalls the app
 * C) User clears app data
 */
@Override
public void onNewToken(@NonNull String token) {
    Log.d(TAG, "Refreshed token: " + token);

    // If you want to send messages to this application instance or
    // manage this apps subscriptions on the server side, send the
    // FCM registration token to your app server.
    sendRegistrationToServer(token);
}

Setelah memperoleh token, Anda bisa mengirimkannya ke server aplikasi dan menyimpannya menggunakan metode yang Anda pilih.

Mengirim pesan notifikasi pengujian

  1. Instal dan jalankan aplikasi pada perangkat target. Pada perangkat Apple, Anda harus menyetujui permintaan izin untuk menerima notifikasi jarak jauh.

  2. Pastikan aplikasi berjalan di latar belakang pada perangkat.

  3. Di Firebase console, buka halaman Messaging.

  4. Jika ini adalah pesan pertama Anda, pilih Create your first campaign.

    1. Pilih Firebase Notification messages, lalu pilih Create.
  5. Atau, di tab Campaigns, pilih New campaign, lalu Notifications.

  6. Masukkan teks pesan. Semua kolom lainnya bersifat opsional.

  7. Pilih Send test message dari panel kanan.

  8. Dalam kolom yang berlabel Add an FCM registration token, masukkan token pendaftaran yang diperoleh di bagian sebelumnya pada panduan ini.

  9. Pilih Test.

Setelah Anda memilih Test, perangkat klien yang ditargetkan (dengan aplikasi berada di latar belakang) akan menerima notifikasi.

Untuk melihat data terkait pengiriman pesan ke aplikasi Anda, lihat dasbor pelaporan FCM, yang mencatat jumlah pesan yang terkirim dan dibuka di perangkat Apple dan Android, beserta data untuk "tayangan" (notifikasi yang dilihat oleh pengguna) untuk aplikasi Android.

Langkah berikutnya

Mengirim pesan ke aplikasi di latar depan

Setelah Anda berhasil mengirim pesan notifikasi saat aplikasi berjalan di latar belakang, baca artikel Menerima Pesan di Aplikasi Android untuk memulai pengiriman ke aplikasi di latar depan.

Topik lanjutan dari pesan notifikasi

Untuk mengetahui fitur selain pesan notifikasi dan menambahkan perilaku lainnya yang lebih canggih pada aplikasi Anda, lihat: