Firebase Cloud Messaging: apa itu, prinsip kerja dan notifikasi push

Penulis: IT Sectr Diterbitkan: 2026-04-29 Waktu membaca: 9 mnt

Firebase Cloud Messaging (FCM) — adalah layanan lintas platform untuk pengiriman notifikasi push dan pesan dari Google, yang dirancang untuk aplikasi mobile dan web. FCM menyediakan transmisi data yang andal antara server dan perangkat klien tanpa perlu mempertahankan koneksi jaringan permanen. Menurut Firebase Documentation, 2026, melalui infrastruktur FCM setiap hari melewati lebih dari 300 miliar pesan di seluruh dunia. Layanan ini mendukung baik notifikasi dengan tampilan otomatis maupun pesan data untuk transmisi data tersembunyi di latar belakang.

Poin utama

  • FCM — layanan notifikasi push gratis dari Google dengan dukungan Android, iOS dan Web melalui satu API dan Firebase Console.
  • Tipe pesan — pesan notification ditampilkan secara otomatis oleh sistem, pesan data memungkinkan pengiriman JSON arbitrer dan memprosesnya di aplikasi.
  • Token perangkat — setiap aplikasi menerima Registration Token unik yang digunakan server untuk pengiriman notifikasi push yang ditargetkan.
  • Prioritas pengiriman — prioritas normal dan high menentukan perilaku sistem saat menghemat baterai: pesan high membangunkan perangkat dari mode Doze.
  • Topik dan grup — FCM mendukung langganan topik untuk pengiriman massal dan Device Groups untuk pengiriman ke beberapa perangkat satu pengguna.

Apa itu Firebase Cloud Messaging

Firebase Cloud Messaging — adalah layanan cloud Google yang menyediakan transmisi notifikasi push dan pesan data antara server aplikasi dan perangkat klien. Layanan ini telah menggantikan Google Cloud Messaging (GCM) yang sudah usang dan menjadi solusi standar untuk pengiriman push di ekosistem Firebase. FCM mendukung Android, iOS, Web dan Unity, menyediakan antarmuka pengiriman terpadu terlepas dari platform target.

Kemampuan utama FCM

Layanan ini menyediakan beberapa mekanisme pengiriman pesan, masing-masing menyelesaikan tugasnya sendiri. Pesan notification ditampilkan oleh sistem secara otomatis saat diterima — pengembang tidak perlu menulis kode untuk menampilkan notifikasi. Pesan data mengirimkan payload arbitrer dalam bentuk pasangan kunci-nilai dan diproses di dalam aplikasi. Pesan gabungan berisi bagian yang terlihat dan tersembunyi secara bersamaan untuk fleksibilitas maksimal.

Keunggulan dibandingkan solusi sendiri

Mengimplementasikan server push sendiri memerlukan pemeliharaan koneksi TCP permanen dengan setiap perangkat, yang tidak efisien dan tidak aman. FCM menggunakan infrastruktur terpadu Google yang mempertahankan koneksi dengan miliaran perangkat secara bersamaan. Layanan ini secara otomatis mengelola upaya pengiriman ulang, antrian pesan, dan penyeimbangan beban, membebaskan pengembang dari kebutuhan untuk menyelesaikan tugas-tugas ini sendiri.

Bagaimana cara kerja Firebase Cloud Messaging

Arsitektur FCM terdiri dari tiga komponen utama: server penyedia (backend Anda), server Firebase Cloud Messaging dan aplikasi klien di perangkat. Ketika server mengirim pesan, pesan pertama kali masuk ke infrastruktur FCM yang merutekannya ke perangkat target. Jika perangkat offline, FCM menyimpan pesan dalam antrian dan mengirimkannya saat koneksi dipulihkan.

Pendaftaran perangkat dan mendapatkan token

Saat pertama kali dijalankan, aplikasi memanggil Firebase SDK yang mendaftarkan perangkat ke layanan FCM dan menerima Registration Token yang unik. Token ini adalah string sepanjang sekitar 150 karakter yang mengidentifikasi instance aplikasi tertentu pada perangkat tertentu. Token dapat berubah saat instalasi ulang aplikasi, penghapusan data atau pemulihan dari cadangan — pengembang harus menangani pembaruan token melalui delegasi onNewToken.

Siklus hidup pesan

Ketika server mengirim permintaan melalui FCM API, pesan melewati beberapa tahap. Penerimaan dan validasi — FCM memeriksa kebenaran permintaan dan keberadaan perangkat target. Antrian — jika perangkat tidak tersedia, pesan masuk ke antrian penyimpanan. Perutean — FCM menentukan saluran pengiriman optimal (Wi-Fi atau data seluler). Pengiriman — sistem mengirimkan pesan ke aplikasi target. Setelah pengiriman berhasil, FCM mengembalikan pengidentifikasi pesan ke server.

Tipe pesan dalam FCM

Firebase Cloud Messaging mendukung tiga tipe pesan, masing-masing memiliki karakteristik pemrosesan sendiri di sisi klien. Pesan notification diproses oleh layanan sistem Google Play Services di Android dan APNs di iOS dan secara otomatis ditampilkan sebagai banner push. Pesan data dikirimkan langsung ke aplikasi dan diproses melalui callback onMessageReceived di Android dan application(_:didReceiveRemoteNotification:) di iOS.

Pesan notification

Pesan notification berisi bidang yang telah ditentukan: title, body, URL gambar dan suara notifikasi. Sistem secara otomatis membuat dan menampilkan notifikasi di baki sistem, bahkan jika aplikasi berada di latar belakang atau dimatikan. Pengguna melihat banner standar dengan judul dan teks, dan saat diklik aplikasi terbuka dengan data yang dikirimkan dalam payload. Jika aplikasi aktif, pesan notification dapat dicegat dan diproses dalam kode.

Pesan data

Pesan data adalah kumpulan pasangan kunci-nilai khusus tanpa bidang yang telah ditentukan. Payload tidak diproses oleh sistem secara otomatis — aplikasi menerima data mentah dan dapat menafsirkannya sesuai keinginan. Pesan data digunakan untuk sinkronisasi data di latar belakang, memperbarui cache lokal, memicu sinkronisasi atau mengirimkan perintah tanpa menampilkan notifikasi. Di Android, pesan data selalu dikirimkan, bahkan jika aplikasi dimatikan atau di latar belakang.

Pesan gabungan

FCM memungkinkan pengiriman pesan yang berisi bagian notification (untuk ditampilkan) dan bagian data (untuk diproses) secara bersamaan. Payload gabungan mencakup bidang notification yang telah ditentukan maupun kunci data arbitrer. Sistem menampilkan notifikasi dari bagian notification, dan bagian data dikirimkan ke intent extras aplikasi saat dibuka. Ini berguna untuk skenario di mana perlu menampilkan notifikasi kepada pengguna dan sekaligus mengirimkan konteks untuk navigasi ke layar tertentu.

TipeTampilan otomatisPemrosesan latar belakangContoh
NotificationYa, oleh sistemOtomatis, tanpa kodeNotifikasi push selamat datang
DataTidakMelalui callback aplikasiSinkronisasi data di latar belakang
GabunganYa, bagian notificationBagian data saat dibukaNotifikasi + tautan pesanan

Pengaturan FCM di Android

Integrasi FCM di Android dimulai dengan menghubungkan Firebase SDK melalui file build.gradle di tingkat aplikasi. Setelah menambahkan dependensi dan file google-services.json, aplikasi secara otomatis menerima Registration Token yang dikirimkan melalui callback FirebaseMessagingService. Untuk menerima notifikasi, perlu dibuat layanan yang mewarisi FirebaseMessagingService dan mendaftarkannya di AndroidManifest.xml.

Inisialisasi dan mendapatkan token

Setelah menghubungkan SDK, Firebase secara otomatis menghasilkan token perangkat tanpa kode tambahan. Token tersedia melalui FirebaseMessaging.getInstance().token, yang mengembalikan Task. Untuk melacak pembaruan token, metode onNewToken ditimpa di layanan. Token harus dikirim ke server penyedia agar server dapat mengirim notifikasi push ke perangkat ini.

kotlin
class MyFirebaseMessagingService :
    FirebaseMessagingService() {

    override fun onNewToken(token: String) {
        sendTokenToServer(token)
    }

    override fun onMessageReceived(
        message: RemoteMessage
    ) {
        val data = message.data
        val title = "Pesan baru"
        val body = data["body"] ?: ""
        showNotification(title, body)
    }
}

Pendaftaran layanan di manifes

Layanan untuk menerima pesan FCM harus didaftarkan di AndroidManifest.xml dengan intent-filter yang sesuai. Penambahan tag service dengan izin INTERNET dan menentukan action. Tanpa registrasi layanan, pesan tidak akan dikirimkan ke aplikasi di latar belakang. Untuk menampilkan notifikasi di Android 13+ diperlukan izin runtime POST_NOTIFICATIONS.

xml
<!-- AndroidManifest.xml -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name=
    "android.permission.POST_NOTIFICATIONS" />

<service
    android:name=".MyFirebaseMessagingService"
    android:exported="false">
    <intent-filter>
        <action android:name=
            "com.google.firebase.MESSAGING_EVENT" />
    </intent-filter>
</service>

Pengaturan FCM di iOS

Integrasi FCM di iOS memerlukan konfigurasi baik di sisi Apple Push Notification Service (APNs) maupun di Firebase Console. Tidak seperti Android di mana FCM mengelola koneksi secara langsung, di iOS FCM menggunakan APNs sebagai lapisan transport. Aplikasi mendaftar untuk menerima notifikasi push melalui UIApplication.shared.registerForRemoteNotifications, dan Firebase SDK mencegat token perangkat yang diterima dan menghubungkannya dengan FCM Registration Token.

Konfigurasi APNs dan pendaftaran notifikasi

Untuk menjalankan FCM di iOS, kunci atau sertifikat APNs harus diunggah ke Firebase Console. Kunci APNs — adalah metode otentikasi modern tanpa sertifikat (direkomendasikan oleh Apple). Kunci dibuat di Apple Developer Portal di bagian Keys dan diunggah di pengaturan Cloud Messaging di Firebase Console. Setelah konfigurasi APNs, aplikasi meminta izin untuk notifikasi melalui UNUserNotificationCenter dan mendaftar melalui APNs.

swift
import Firebase
import UserNotifications

class AppDelegate: NSObject, UIApplicationDelegate {

    func application(
        _ application: UIApplication,
        didFinishLaunchingWithOptions
        launchOptions: [UIApplication.LaunchOptionsKey: Any]?
    ) -> Bool {
        FirebaseApp.configure()
        UNUserNotificationCenter.current()
            .requestAuthorization(options: [.alert, .sound, .badge])
        application.registerForRemoteNotifications()
        return true
    }

    func application(
        _ application: UIApplication,
        didRegisterForRemoteNotificationsWithDeviceToken
        deviceToken: Data
    ) {
        Messaging.messaging()
            .apnsToken = deviceToken
    }
}

Pemrosesan notifikasi masuk

Untuk memproses notifikasi yang diterima, delegasi UNUserNotificationCenter diimplementasikan. Metode willPresent dipanggil ketika notifikasi diterima saat aplikasi aktif — di sini dapat ditampilkan notifikasi in-app kustom atau mengabaikan banner sistem. Metode didReceive dipanggil ketika pengguna mengklik notifikasi — di sini navigasi ke layar yang sesuai dilakukan. Untuk pesan data, delegasi MessagingDelegate digunakan yang menerima payload saat menerima pesan FCM di latar belakang.

Pengiriman pesan dari server

Pengiriman sisi server pesan FCM dilakukan melalui HTTP v1 API Firebase Cloud Messaging atau Firebase Cloud Messaging API yang sudah usang. HTTP v1 API adalah metode yang direkomendasikan, menggunakan otentikasi OAuth 2.0 melalui Service Account dan mendukung semua kemampuan modern FCM, termasuk analitik pengiriman dan pengujian A/B notifikasi. Permintaan dikirim dengan metode POST ke endpoint https://fcm.googleapis.com/v1/projects/{project_id}/messages:send.

Format permintaan HTTP v1

Badan permintaan berisi objek JSON dengan informasi tentang pesan: target (token, topik atau kondisi), notification (untuk ditampilkan) dan data (payload kustom). Otentikasi melalui kunci JSON Service Account yang dimuat ke variabel lingkungan server. Token akses dihasilkan melalui perpustakaan google-auth-library. Google merekomendasikan penggunaan Firebase Admin SDK untuk manajemen otomatis otentikasi dan upaya ulang.

js
const admin = require("firebase-admin")

const serviceAccount = require("./serviceAccountKey.json")

admin.initializeApp({ credential: admin.credential.cert(serviceAccount) })

const message = {
    token: "device_registration_token",
    notification: { title: "Diskon 20%", body: "Untuk semua layanan hari ini" },
    data: { screen: "promo", promoId: "324" },
    android: { priority: "high" },
    apns: { payload: { aps: { sound: "default" } } }
}

admin.messaging().send(message)
    .then(response => {
        console.log("Berhasil dikirim:", response)
    })
    .catch(error => {
        console.log("Kesalahan pengiriman:", error)
    })

Topik dan pengiriman massal

Untuk mengirim notifikasi ke grup pengguna, FCM mendukung langganan topik. Topik — adalah saluran bernama yang digunakan aplikasi klien untuk berlangganan melalui FirebaseMessaging.getInstance().subscribeToTopic(). Server dapat mengirim pesan ke topik dan akan dikirimkan ke semua perangkat yang berlangganan. Topik cocok untuk buletin, notifikasi promosi dan push acara. Untuk segmentasi yang lebih presisi, digunakan kondisi (conditions) berdasarkan beberapa topik dengan operator logika.

Pertanyaan yang sering diajukan

Apa perbedaan antara FCM dan APNs?

FCM bekerja di Android melalui infrastruktur Google sendiri, dan di iOS menggunakan APNs sebagai protokol transport. FCM menyediakan API terpadu untuk kedua platform, penyimpanan pesan offline otomatis dan analitik pengiriman, yang tidak ada di APNs murni.

Bisakah pesan FCM dikirim tanpa server?

Ya, melalui Firebase Console di bagian Cloud Messaging dapat mengirim notifikasi secara manual ke perangkat yang dipilih, topik atau segmen audiens. Fungsi ini cocok untuk pengujian dan pengiriman satu kali, tetapi tidak menggantikan integrasi server untuk aplikasi produksi.

Apa yang harus dilakukan jika token perangkat berubah?

Berlangganan pembaruan token melalui onNewToken di FirebaseMessagingService (Android) atau MessagingDelegate (iOS). Saat token berubah, kirim token baru ke server dan hapus yang lama. Server harus memperbarui database dan menghentikan upaya pengiriman ke token yang sudah usang.

Bagaimana FCM menangani perangkat offline?

FCM menyimpan pesan dalam antrian hingga 28 hari dan mengirimkannya saat koneksi dipulihkan. Untuk pesan notification, hanya pesan terakhir untuk setiap grup collapse yang diciutkan. Pesan data disimpan secara terpisah dan dikirimkan dalam urutan pengiriman tanpa penciutan.

Berapa biaya penggunaan Firebase Cloud Messaging?

FCM sepenuhnya gratis tanpa batasan jumlah pesan. Penggunaan FCM tidak dikenakan biaya baik dalam paket Spark maupun paket Blaze. Batasan hanya berlaku untuk ukuran payload: hingga 4 KB untuk pesan notification dan hingga 2 KB untuk pesan data.

Ringkasan

  • Firebase Cloud Messaging — layanan notifikasi push lintas platform dari Google yang mendukung Android, iOS, Web dan Unity melalui satu API.
  • Arsitektur FCM terdiri dari server penyedia, infrastruktur Firebase dan aplikasi klien, memastikan pengiriman pesan yang andal melalui jaringan global Google.
  • Tiga tipe pesan — notification (tampilan otomatis), data (payload arbitrer tanpa UI) dan gabungan (kedua tipe dalam satu pesan).
  • FCM di Android bekerja melalui FirebaseMessagingService dengan koneksi sendiri, dan di iOS menggunakan APNs sebagai transport dengan penyadapan token melalui MessagingDelegate.
  • HTTP v1 API direkomendasikan untuk pengiriman sisi server dengan otentikasi OAuth 2.0 melalui Service Account dan dukungan analitik pengiriman.
  • Topik memungkinkan pengiriman pesan ke grup pelanggan, dan kondisi (conditions) memungkinkan penggabungan beberapa topik untuk segmentasi yang presisi.
  • FCM gratis tanpa batasan jumlah pesan, dengan penyimpanan pesan offline hingga 28 hari dan ukuran payload maksimal 4 KB.

Kami akan mengembangkan aplikasi seluler turnkey

IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.

Diskusikan proyek

Baca juga