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 barucompileSdkVersion
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.
Buka Firebase console.
Di bagian tengah halaman ringkasan project, klik ikon Android (
) atau Add app untuk meluncurkan alur kerja penyiapan.Masukkan nama paket aplikasi Anda di kolom Android package name.
(Opsional) Masukkan informasi aplikasi yang lain: App nickname dan Debug signing certificate SHA-1.
Klik Register app.
Menambahkan file konfigurasi Firebase
Download, lalu tambahkan file konfigurasi Android Firebase (
) ke aplikasi Anda:google-services.json Klik Download google-services.json untuk mendapatkan file konfigurasi Android Firebase Anda.
Pindahkan file konfigurasi ke direktori root modul (level aplikasi) aplikasi Anda.
Agar nilai dalam file konfigurasi
Anda dapat diakses oleh Firebase SDK, Anda memerlukan plugin Gradle layanan Google (google-services.json google-services
).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 } }
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
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' }
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
Instal dan jalankan aplikasi pada perangkat target. Pada perangkat Apple, Anda harus menyetujui permintaan izin untuk menerima notifikasi jarak jauh.
Pastikan aplikasi berjalan di latar belakang pada perangkat.
Di Firebase console, buka halaman Messaging.
Jika ini adalah pesan pertama Anda, pilih Create your first campaign.
- Pilih Firebase Notification messages, lalu pilih Create.
Atau, di tab Campaigns, pilih New campaign, lalu Notifications.
Masukkan teks pesan. Semua kolom lainnya bersifat opsional.
Pilih Send test message dari panel kanan.
Dalam kolom yang berlabel Add an FCM registration token, masukkan token pendaftaran yang diperoleh di bagian sebelumnya pada panduan ini.
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: