FCM — apa itu, prinsip Firebase Cloud Messaging dalam pengembangan

Penulis: IT Sectr Diterbitkan: 2026-03-19 Waktu membaca: 8 mnt

FCM (Firebase Cloud Messaging) adalah layanan lintas platform dari Google untuk mengirimkan notifikasi push dan mentransfer data antara server dan aplikasi mobile. Ini mendukung Android, iOS, dan platform web melalui satu API. Menurut Firebase Documentation, FCM memproses lebih dari 1 miliar pesan setiap hari di seluruh dunia.

Poin utama

  • FCM — layanan lintas platform Google untuk mengirim notifikasi push dan data
  • Arsitektur — klien menerima token registrasi, server mengirim pesan melalui Firebase Connection Server
  • Jenis pesan — notification (tampilan otomatis) dan data (pemrosesan penuh di aplikasi)
  • Pengiriman — FCM menggunakan koneksi permanen atau antrian prioritas untuk jaminan pengiriman
  • Integrasi — koneksi melalui Firebase SDK, konfigurasi google-services.json dan konfigurasi server

Apa itu FCM?

Firebase Cloud Messaging (FCM) adalah layanan cloud dari Google yang menyediakan pengiriman notifikasi push dan pesan data yang andal ke perangkat mobile. Sebelumnya dikenal sebagai Google Cloud Messaging (GCM), FCM telah menjadi alat utama untuk notifikasi lintas platform di ekosistem Firebase.

FCM secara otomatis memilih saluran pengiriman optimal tergantung platform: di Android menggunakan koneksi FCM sendiri, di iOS — APNS (melalui gateway FCM). Pengembang tidak perlu mengimplementasikan dua integrasi berbeda — FCM menangani perutean.

Layanan ini menyediakan REST API dan Admin SDK terpadu untuk mengirim pesan. Ini memungkinkan pengiriman notifikasi dari sisi server tanpa terikat ke platform spesifik penerima.

Kemampuan utama FCM

FCM mendukung beberapa mode pengiriman: satu pesan ke perangkat tertentu, pengiriman grup berdasarkan topik (topic) dan pengiriman segmen berdasarkan kondisi (condition). Penjadwalan pengiriman dan pengujian A/B konten notifikasi juga tersedia.

Bagaimana cara kerja Firebase Cloud Messaging?

Arsitektur FCM didasarkan pada tiga komponen: aplikasi klien, Firebase Connection Server, dan server aplikasi (app server). Klien mendaftar ke FCM saat dijalankan dan menerima token registrasi unik — string yang mengidentifikasi perangkat untuk aplikasi tertentu.

Server aplikasi mengirim permintaan ke FCM REST API, menentukan token penerima atau topik. Firebase Connection Server mengirimkan pesan menggunakan koneksi XMPP permanen atau permintaan HTTP. Jika perangkat offline — pesan dimasukkan ke antrian dan dikirimkan saat koneksi pulih.

FCM menjamin pengiriman menggunakan antrian prioritas dan mekanisme konfirmasi penerimaan. Di Android, pesan disimpan hingga 28 hari dalam antrian, di iOS — hingga 4 minggu (melalui APNS). Setelah masa berlaku habis, pesan dihapus tanpa pemberitahuan.

Siklus hidup token FCM

Token registrasi dapat berubah dalam beberapa kasus: saat memulihkan data aplikasi, saat memperbarui ke versi baru, atau saat membersihkan cache. Aplikasi harus mengimplementasikan FirebaseMessagingService.onNewToken untuk menangani pembaruan token dan sinkronisasi dengan server.

Jenis pesan FCM

FCM mendukung dua jenis muatan: notification dan data. Setiap jenis menentukan bagaimana dan kapan pesan diproses di perangkat penerima.

ParameterNotificationData
Tampilan otomatisYa, jika aplikasi di latar belakangTidak, hanya di aplikasi
PemrosesanSistem — di latar belakang; aplikasi — di latar depanSelalu di aplikasi (onMessageReceived)
Ukuran maksimum4 KB4 KB
Kunci kustomTerbatas pada bidang yang ditentukanPasangan kunci-nilai apa pun
Memerlukan CollapseKeyOpsionalOpsional untuk pengelompokan

Dalam praktiknya, disarankan menggunakan pesan data jika aplikasi memerlukan pemrosesan notifikasi penuh di onMessageReceived. Pesan notification cocok untuk skenario sederhana di mana tampilan sistem sudah cukup.

FCM dan APNS: perbandingan pendekatan

FCM dan APNS adalah dua layanan pengiriman push utama. FCM berfungsi sebagai gateway lintas platform, APNS — hanya untuk ekosistem Apple. Perbedaan utama mereka ada pada arsitektur, persyaratan sertifikat, dan mekanisme perutean.

  • Lintas platform — FCM mendukung Android, iOS, Web; APNS hanya iOS, macOS, watchOS, tvOS
  • Otentikasi — FCM menggunakan Server Key atau OAuth 2.0; APNS — sertifikat atau Token-based (p8 key)
  • Prioritas pesan — FCM memiliki normal/high; APNS — immediate/power-efficient consideration
  • Topik — FCM mendukung langganan topik langsung; APNS memerlukan logika server

Pilihan antara FCM dan APNS langsung tergantung pada arsitektur proyek. Untuk aplikasi lintas platform, FCM adalah pilihan optimal. Untuk proyek hanya iOS, bekerja langsung dengan APNS melalui API HTTP/2 dapat diterima.

Kapan memilih FCM daripada APNS langsung

FCM dibenarkan ketika proyek menggunakan Android dan iOS secara bersamaan, serta saat membutuhkan analitik Firebase, pengujian A/B notifikasi, atau topik tanpa logika server. APNS langsung lebih disukai untuk aplikasi hanya iOS dengan ketergantungan minimal dan persyaratan ketat untuk latensi pengiriman.

Integrasi FCM di Android

Untuk menghubungkan FCM ke aplikasi Android, perlu menambahkan Firebase SDK dan mengonfigurasi google-services.json di root proyek. Setelah registrasi token, aplikasi siap menerima pesan melalui FirebaseMessagingService.

kotlin
// build.gradle (Module)
dependencies {
    implementation("com.google.firebase:firebase-messaging:24.1.0")
}

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

class MyFirebaseMessagingService :
    FirebaseMessagingService() {

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

    override fun onMessageReceived(message: RemoteMessage) {
        message.notification?.let {
            showNotification(it.title, it.body)
        }
    }
}

Setelah konfigurasi, aplikasi secara otomatis menerima token FCM saat pertama kali dijalankan. Token harus dikirim ke server aplikasi untuk pengiriman notifikasi selanjutnya ke perangkat ini.

Konfigurasi saluran untuk notifikasi FCM

Di Android 8+, sebelum mengirim notifikasi FCM dengan tampilan otomatis, perlu membuat NotificationChannel. Pesan notification FCM menggunakan saluran dengan ID default, tetapi disarankan membuat saluran sendiri melalui FirebaseMessagingService saat menerima pesan pertama. Pesan data tidak memerlukan saluran — aplikasi sendiri yang memutuskan bagaimana dan kapan menampilkan notifikasi.

Integrasi FCM di iOS

Di iOS, FCM bertindak sebagai perantara antara server aplikasi dan APNS. Firebase menerima pesan dari server, membungkusnya dalam format APNS, dan mengirimkannya melalui gateway Apple. Pengembang perlu mengonfigurasi kunci APNS atau sertifikat di konsol Firebase.

swift
import FirebaseMessaging
import UserNotifications

class AppDelegate: UIResponder, UIApplicationDelegate {

    func application(
        _ application: UIApplication,
        didFinishLaunchingWithOptions options: [UIApplication.LaunchOptionsKey: Any]?
    ) -> Bool {
        FirebaseApp.configure()
        UNUserNotificationCenter.current().delegate = self

        Messaging.messaging().delegate = self
        return true
    }
}

extension AppDelegate: MessagingDelegate {
    func messaging(
        _ messaging: Messaging,
        didReceiveRegistrationToken fcmToken: String?
    ) {
        UserDefaults.standard.set(fcmToken, forKey: "fcm_token")
    }
}

Di iOS, pendaftaran ke APNS terjadi secara asinkron. FCM SDK secara otomatis menerima token APNS dan meneruskannya ke server Firebase. didReceiveRegistrationToken terpicu saat menerima token FCM baru, yang menggabungkan token APNS dengan identifikasi proyek.

Memeriksa status pengiriman

FCM menyediakan konsol Firebase untuk memantau pengiriman: jumlah notifikasi yang dikirim, diterima, dan ditampilkan. Juga tersedia callback status melalui Firebase Cloud Functions untuk melacak kesalahan pengiriman di sisi server. Metrik utama: impressions (tampilan) dan opens (bukaan).

Praktik terbaik FCM

Saat bekerja dengan FCM, penting untuk memilih jenis pesan yang tepat untuk setiap skenario. Untuk notifikasi sederhana dengan tampilan otomatis, gunakan pesan notification. Untuk kasus di mana aplikasi perlu memproses data sebelum ditampilkan — pesan data. Tipe campuran (notification + data) hanya disarankan jika data diperlukan untuk analitik, bukan untuk mengubah konten notifikasi.

Kelola token secara terpusat. Simpan token terkini di server dalam tabel yang terhubung dengan pengguna dan platform. Implementasikan mekanisme pembersihan token usang: saat kesalahan NotRegistered atau InvalidRegistration, hapus token dari database. Token jarang berubah, tetapi pembersihannya adalah elemen wajib dukungan FCM.

Gunakan kunci collapse (collapseKey) untuk mengelompokkan pesan. Jika Anda mengirim beberapa notifikasi dengan tipe yang sama (misalnya, „pembaruan kurs mata uang”), atur collapseKey yang sama. FCM hanya akan mengirimkan pesan terakhir dari grup, yang mengurangi beban perangkat dan tidak mengganggu pengguna dengan banjir notifikasi.

Pantau pengiriman melalui Firebase Console dan Cloud Functions. Analitik FCM menunjukkan jumlah notifikasi yang dikirim, diterima, dan ditampilkan. Jika persentase tampilan di bawah 70% — periksa pengaturan saluran di Android dan izin di iOS. Pengiriman rendah sering terkait dengan saluran yang dinonaktifkan atau larangan notifikasi. Kelima: gunakan pengujian A/B Firebase untuk mengoptimalkan teks notifikasi dan waktu pengiriman — ini meningkatkan konversi bukaan sebesar 15–25% menurut data Firebase.

Pertanyaan yang sering diajukan

Apa perbedaan antara FCM dan GCM?

FCM adalah pembaruan evolusioner dari GCM (Google Cloud Messaging). FCM menawarkan konfigurasi yang disederhanakan melalui Firebase Console, analitik bawaan, topik, dan dukungan Web Push. GCM secara resmi dinonaktifkan sejak April 2019, semua proyek harus dimigrasi ke FCM.

Berapa banyak pesan yang dapat dikirim melalui FCM secara gratis?

Firebase Cloud Messaging adalah layanan gratis tanpa batasan jumlah pesan. Biaya hanya dikenakan untuk penggunaan layanan Firebase lainnya seperti Cloud Functions atau Firestore. FCM tidak memerlukan langganan Spark atau Blaze untuk pengiriman notifikasi dasar.

Mengapa token FCM bisa berubah?

Token FCM berubah saat: memulihkan aplikasi dari cadangan, membersihkan data aplikasi, menginstal ulang, memperbarui ke versi baru dengan perubahan Sender ID. Selalu proses onNewToken di FirebaseMessagingService untuk mengirim token baru ke server.

Apakah FCM berfungsi di China?

FCM Google diblokir di wilayah China. Untuk pengiriman notifikasi di China, digunakan layanan alternatif: Huawei Push Kit, MiPush (Xiaomi), Oppo Push, Vivo Push. Untuk pengiriman lintas platform, digunakan layanan multi-penyedia seperti Getui.

Bagaimana cara memeriksa apakah FCM dikonfigurasi dengan benar?

Gunakan konsol Firebase bawaan: pilih „Cloud Messaging” — „Send Test Message”. Masukkan token uji dan kirim pesan notification. Notifikasi akan muncul di perangkat. Anda juga dapat memantau log FirebaseMessagingService.onMessageReceived.

Kesimpulan

  • FCM — layanan cloud lintas platform Google untuk pengiriman notifikasi push dan data
  • Token — pengidentifikasi perangkat unik yang digunakan untuk pengiriman pesan yang ditargetkan
  • Notification — jenis pesan dengan tampilan otomatis oleh sistem dalam mode latar belakang
  • Data — jenis pesan dengan muatan penuh yang diproses hanya di aplikasi
  • Topik — mekanisme pengiriman grup dengan berlangganan topik tanpa menyimpan token di server
  • Gateway APNS — untuk iOS, FCM bertindak sebagai perantara, meneruskan pesan melalui APNS
  • Gratis — FCM tidak memungut biaya untuk jumlah pesan yang dikirim

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