Firebase Cloud Messaging: ano ito, prinsipyo ng paggana at push notification

May-akda: IT Sectr Nai-publish: 2026-04-29 Oras ng pagbabasa: 9 min

Firebase Cloud Messaging (FCM) — ay isang cross-platform na serbisyo para sa paghahatid ng mga push notification at mensahe mula sa Google, na dinisenyo para sa mga mobile at web application. Ang FCM ay nagbibigay ng maaasahang paglipat ng data sa pagitan ng server at mga client device nang hindi kinakailangang mapanatili ang isang permanenteng koneksyon sa network. Ayon sa Firebase Documentation, 2026, sa pamamagitan ng imprastraktura ng FCM araw-araw ay pumapasok ang mahigit 300 bilyon na mensahe sa buong mundo. Sinusuportahan ng serbisyo ang parehong mga notification na may awtomatikong pagpapakita at data na mga mensahe para sa nakatagong paglipat ng data sa background.

Mga pangunahing punto

  • FCM — libreng serbisyo ng push notification mula sa Google na may suporta sa Android, iOS at Web sa pamamagitan ng iisang API at Firebase Console.
  • Mga uri ng mensahe — ang mga notification na mensahe ay awtomatikong ipinapakita ng system, ang data na mga mensahe ay nagpapahintulot sa pagpapadala ng arbitraryong JSON at pagproseso nito sa application.
  • Mga token ng device — bawat application ay tumatanggap ng natatanging Registration Token na ginagamit ng server para sa naka-target na pagpapadala ng push notification.
  • Mga prayoridad ng paghahatid — ang normal at high na prayoridad ay tumutukoy sa pag-uugali ng system kapag nagtitipid ng baterya: ang high na mga mensahe ay gumigising sa device mula sa Doze mode.
  • Mga topic at grupo — sinusuportahan ng FCM ang subscription sa mga topic para sa mass sending at Device Groups para sa pagpapadala sa maraming device ng isang user.

Ano ang Firebase Cloud Messaging

Firebase Cloud Messaging — ay isang cloud service ng Google na nagbibigay ng paglipat ng mga push notification at data na mensahe sa pagitan ng server ng application at mga client device. Pinalitan ng serbisyo ang lumang Google Cloud Messaging (GCM) at naging karaniwang solusyon para sa paghahatid ng push sa Firebase ecosystem. Sinusuportahan ng FCM ang Android, iOS, Web at Unity, na nagbibigay ng pinag-isang interface ng pagpapadala anuman ang target na platform.

Mga pangunahing kakayahan ng FCM

Ang serbisyo ay nagbibigay ng ilang mekanismo ng paghahatid ng mensahe, bawat isa ay lumulutas ng sarili nitong gawain. Ang mga notification na mensahe ay awtomatikong ipinapakita ng system pagdating — ang developer ay hindi kailangang magsulat ng code para sa pagpapakita ng notification. Ang mga data na mensahe ay nagpapadala ng arbitraryong payload sa anyo ng mga pares ng key-value at pinoproseso sa loob ng application. Ang mga pinagsamang mensahe ay naglalaman ng parehong nakikita at nakatagong bahagi para sa maximum na flexibility.

Mga kalamangan kumpara sa sariling solusyon

Ang pagpapatupad ng sariling push server ay nangangailangan ng permanenteng pagpapanatili ng TCP connection sa bawat device, na hindi mahusay at hindi ligtas. Ginagamit ng FCM ang pinag-isang imprastraktura ng Google na nagpapanatili ng koneksyon sa bilyun-bilyong device nang sabay-sabay. Awtomatikong pinangangasiwaan ng serbisyo ang mga paulit-ulit na pagtatangka ng paghahatid, mga pila ng mensahe at pagbabalanse ng load, pinalalaya ang developer mula sa pangangailangan na lutasin ang mga gawaing ito nang mag-isa.

Paano gumagana ang Firebase Cloud Messaging

Ang arkitektura ng FCM ay binubuo ng tatlong pangunahing bahagi: server ng provider (iyong backend), server ng Firebase Cloud Messaging at client application sa device. Kapag nagpadala ang server ng mensahe, ito ay unang pumapasok sa imprastraktura ng FCM na nagruruta nito sa target na device. Kung offline ang device, iniimbak ng FCM ang mensahe sa pila at inihahatid ito kapag naibalik ang koneksyon.

Pagrehistro ng device at pagkuha ng token

Sa unang pagtakbo, tinatawag ng application ang Firebase SDK na nagrerehistro ng device sa serbisyo ng FCM at tumatanggap ng natatanging Registration Token. Ang token na ito ay isang string na humigit-kumulang 150 character na tumutukoy sa isang partikular na instance ng application sa isang partikular na device. Maaaring magbago ang token sa muling pag-install ng application, pag-clear ng data o pag-restore mula sa backup — dapat iproseso ng developer ang pag-update ng token sa pamamagitan ng delegate na onNewToken.

Ikot ng buhay ng mensahe

Kapag nagpadala ang server ng kahilingan sa pamamagitan ng FCM API, ang mensahe ay dumadaan sa ilang yugto. Pagtanggap at validation — sinusuri ng FCM ang kawastuhan ng kahilingan at pagkakaroon ng target na device. Pila — kung hindi available ang device, ang mensahe ay pumapasok sa storage queue. Pagruruta — tinutukoy ng FCM ang pinakamainam na channel ng paghahatid (Wi-Fi o mobile data). Paghahatid — inihahatid ng system ang mensahe sa target na application. Pagkatapos ng matagumpay na paghahatid, ibinabalik ng FCM ang identifier ng mensahe sa server.

Mga uri ng mensahe sa FCM

Firebase Cloud Messaging ay sumusuporta sa tatlong uri ng mensahe, bawat isa ay may sariling katangian ng pagproseso sa panig ng client. Ang mga notification na mensahe ay pinoproseso ng system service na Google Play Services sa Android at APNs sa iOS at awtomatikong ipinapakita bilang mga push banner. Ang mga data na mensahe ay direktang inihahatid sa application at pinoproseso sa pamamagitan ng callback na onMessageReceived sa Android at application(_:didReceiveRemoteNotification:) sa iOS.

Mga notification na mensahe

Ang notification na mensahe ay naglalaman ng mga paunang natukoy na field: title, body, URL ng larawan at tunog ng notification. Awtomatikong ginagawa at ipinapakita ng system ang notification sa system tray, kahit na ang application ay nasa background o pinatay. Nakikita ng user ang karaniwang banner na may pamagat at teksto, at kapag na-click ay bubukas ang application na may data na ipinadala sa payload. Kung aktibo ang application, ang notification na mensahe ay maaaring maharang at maproseso sa code.

Mga data na mensahe

Ang data na mensahe ay isang custom na set ng mga pares ng key-value na walang paunang natukoy na mga field. Ang payload ay hindi pinoproseso ng system awtomatiko — ang application ay tumatanggap ng raw data at maaaring bigyang-kahulugan ito sa anumang paraan. Ang mga data na mensahe ay ginagamit para sa pag-sync ng data sa background, pag-update ng lokal na cache, pag-trigger ng synchronization o pagpapadala ng mga utos nang hindi nagpapakita ng notification. Sa Android, ang data na mensahe ay palaging inihahatid, kahit na ang application ay pinatay o nasa background.

Mga pinagsamang mensahe

Pinapayagan ng FCM ang pagpapadala ng mensahe na naglalaman ng parehong notification na bahagi (para sa pagpapakita) at data na bahagi (para sa pagproseso). Ang pinagsamang payload ay sumasaklaw sa parehong paunang natukoy na mga field ng notification at arbitraryong mga key ng data. Ipinapakita ng system ang notification mula sa notification na bahagi at ang data na bahagi ay inihahatid sa intent extras ng application kapag binuksan. Ito ay maginhawa para sa mga sitwasyon kung saan kailangang magpakita ng notification sa user at sabay na maghatid ng konteksto para sa pag-navigate sa isang partikular na screen.

UriAwtomatikong pagpapakitaPagproseso sa backgroundHalimbawa
NotificationOo, ng systemAwtomatiko, walang codePagbating push notification
DataHindiSa pamamagitan ng callback ng applicationPag-sync ng data sa background
PinagsamaOo, notification na bahagiData na bahagi kapag binuksanNotification + link ng order

Pag-configure ng FCM sa Android

Ang pagsasama ng FCM sa Android ay nagsisimula sa pagkonekta ng Firebase SDK sa pamamagitan ng build.gradle file sa antas ng application. Pagkatapos magdagdag ng mga dependency at google-services.json file, awtomatikong natatanggap ng application ang Registration Token na inihahatid sa pamamagitan ng FirebaseMessagingService callback. Para makatanggap ng mga notification, kailangang gumawa ng serbisyo na nagmamana ng FirebaseMessagingService at irehistro ito sa AndroidManifest.xml.

Initialization at pagkuha ng token

Pagkatapos ikonekta ang SDK, awtomatikong bubuo ang Firebase ng token ng device nang walang karagdagang code. Ang token ay accessible sa pamamagitan ng FirebaseMessaging.getInstance().token, na nagbabalik ng Task. Para sa pagsubaybay ng mga update ng token, ang onNewToken na method ay na-override sa serbisyo. Ang token ay dapat ipadala sa server ng provider upang ang server ay makapagpadala ng push notification sa device na ito.

kotlin
class MyFirebaseMessagingService :
    FirebaseMessagingService() {

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

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

Pagrehistro ng serbisyo sa manifest

Ang serbisyo para sa pagtanggap ng mga FCM na mensahe ay dapat irehistro sa AndroidManifest.xml na may naaangkop na intent-filter. Pagdaragdag ng tag service na may INTERNET permission at pagtukoy ng action. Kung walang pagpaparehistro ng serbisyo, ang mga mensahe ay hindi ihahatid sa application sa background. Para sa pagpapakita ng mga notification sa Android 13+ kinakailangan ang runtime permission na 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>

Pag-configure ng FCM sa iOS

Ang pagsasama ng FCM sa iOS ay nangangailangan ng configuration pareho sa panig ng Apple Push Notification Service (APNs) at sa Firebase Console. Hindi tulad ng Android kung saan direktang pinangangasiwaan ng FCM ang koneksyon, sa iOS ay ginagamit ng FCM ang APNs bilang transport layer. Ang application ay nagrerehistro para makatanggap ng push notification sa pamamagitan ng UIApplication.shared.registerForRemoteNotifications, at ang Firebase SDK ay humaharang sa natanggap na device token at iniuugnay ito sa FCM Registration Token.

Pag-configure ng APNs at pagrehistro para sa mga notification

Para gumana ang FCM sa iOS, kailangang i-upload ang APNs key o certificate sa Firebase Console. Ang APNs key — ay isang modernong paraan ng authentication na walang certificate (inirerekomenda ng Apple). Ang key ay ginagawa sa Apple Developer Portal sa seksyong Keys at ina-upload sa mga setting ng Cloud Messaging sa Firebase Console. Pagkatapos ng configuration ng APNs, ang application ay humihingi ng pahintulot para sa mga notification sa pamamagitan ng UNUserNotificationCenter at nagrerehistro sa pamamagitan ng 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
    }
}

Pagproseso ng mga papasok na notification

Para sa pagproseso ng mga natanggap na notification, ang UNUserNotificationCenter delegate ay ipinapatupad. Ang willPresent na method ay tinatawag kapag ang notification ay natanggap habang ang application ay aktibo — dito maaaring magpakita ng custom na in-app notification o huwag pansinin ang system banner. Ang didReceive na method ay tinatawag kapag ang user ay nag-click sa notification — dito ginagawa ang pag-navigate sa kaukulang screen. Para sa data na mga mensahe, ang MessagingDelegate ay ginagamit na tumatanggap ng payload sa pagtanggap ng FCM na mensahe sa background.

Pagpapadala ng mga mensahe mula sa server

Ang pagpapadala sa panig ng server ng FCM na mga mensahe ay ginagawa sa pamamagitan ng HTTP v1 API Firebase Cloud Messaging o lumang Firebase Cloud Messaging API. Ang HTTP v1 API ay ang inirerekomendang paraan, gumagamit ng OAuth 2.0 authentication sa pamamagitan ng Service Account at sumusuporta sa lahat ng modernong kakayahan ng FCM, kabilang ang analytics ng paghahatid at A/B testing ng mga notification. Ang kahilingan ay ipinapadala sa pamamagitan ng POST method sa endpoint https://fcm.googleapis.com/v1/projects/{project_id}/messages:send.

Format ng kahilingan HTTP v1

Ang katawan ng kahilingan ay naglalaman ng JSON object na may impormasyon tungkol sa mensahe: target (token, topic o condition), notification (para sa pagpapakita) at data (custom na payload). Authentication sa pamamagitan ng Service Account JSON key na ina-upload sa environment variables ng server. Ang access token ay nabubuo sa pamamagitan ng google-auth-library. Inirerekomenda ng Google ang paggamit ng Firebase Admin SDK para sa awtomatikong pamamahala ng authentication at mga paulit-ulit na pagtatangka.

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: "20% diskwento", body: "Para sa lahat ng serbisyo ngayon" },
    data: { screen: "promo", promoId: "324" },
    android: { priority: "high" },
    apns: { payload: { aps: { sound: "default" } } }
}

admin.messaging().send(message)
    .then(response => {
        console.log("Matagumpay na naipadala:", response)
    })
    .catch(error => {
        console.log("Error sa pagpapadala:", error)
    })

Mga topic at mass sending

Para sa pagpapadala ng mga notification sa isang grupo ng mga user, sinusuportahan ng FCM ang subscription sa mga topic. Ang topic — ay isang pinangalanang channel kung saan nag-subscribe ang client application sa pamamagitan ng FirebaseMessaging.getInstance().subscribeToTopic(). Ang server ay maaaring magpadala ng mensahe sa isang topic at ito ay ihahatid sa lahat ng naka-subscribe na device. Ang mga topic ay angkop para sa mga newsletter, promotional notification at event push. Para sa mas tumpak na segmentation, ginagamit ang mga condition batay sa maraming topic na may logical operators.

Mga madalas itanong

Ano ang pagkakaiba ng FCM at APNs?

Ang FCM ay gumagana sa Android sa pamamagitan ng sariling imprastraktura ng Google, at sa iOS ay gumagamit ng APNs bilang transport protocol. Ang FCM ay nagbibigay ng pinag-isang API para sa parehong platform, awtomatikong pag-imbak ng mga offline na mensahe at analytics ng paghahatid, na wala sa purong APNs.

Maaari bang magpadala ng FCM na mga mensahe nang walang server?

Oo, sa pamamagitan ng Firebase Console sa seksyong Cloud Messaging ay maaaring manu-manong magpadala ng mga notification sa mga piling device, topic o segment ng audience. Ang function ay angkop para sa pagsubok at isang beses na pagpapadala, ngunit hindi pumapalit sa server integration para sa production application.

Ano ang gagawin kung nagbago ang token ng device?

Mag-subscribe sa mga update ng token sa pamamagitan ng onNewToken sa FirebaseMessagingService (Android) o MessagingDelegate (iOS). Kapag nagbago ang token, ipadala ang bagong token sa server at tanggalin ang luma. Dapat i-update ng server ang database at ihinto ang mga pagtatangka sa pagpapadala sa lumang token.

Paano pinangangasiwaan ng FCM ang mga offline na device?

Iniimbak ng FCM ang mensahe sa pila hanggang 28 araw at inihahatid ito kapag naibalik ang koneksyon. Para sa mga notification na mensahe, ang huling mensahe lamang para sa bawat collapse group ang nagko-collapse. Ang mga data na mensahe ay iniimbak nang hiwalay at inihahatid sa pagkakasunud-sunod ng pagpapadala nang walang pag-collapse.

Magkano ang halaga ng paggamit ng Firebase Cloud Messaging?

Ang FCM ay ganap na libre nang walang limitasyon sa bilang ng mga mensahe. Ang paggamit ng FCM ay hindi sinisingil alinman sa Spark plan o sa Blaze plan. Ang mga limitasyon ay nalalapat lamang sa laki ng payload: hanggang 4 KB para sa mga notification na mensahe at hanggang 2 KB para sa mga data na mensahe.

Buod

  • Firebase Cloud Messaging — cross-platform na serbisyo ng push notification mula sa Google na sumusuporta sa Android, iOS, Web at Unity sa pamamagitan ng iisang API.
  • Ang arkitektura ng FCM ay binubuo ng server ng provider, imprastraktura ng Firebase at client application, na tinitiyak ang maaasahang paghahatid ng mensahe sa pamamagitan ng pandaigdigang network ng Google.
  • Tatlong uri ng mensahe — notification (awtomatikong pagpapakita), data (arbitraryong payload na walang UI) at pinagsama (parehong uri sa isang mensahe).
  • FCM sa Android ay gumagana sa pamamagitan ng FirebaseMessagingService na may sariling koneksyon, at sa iOS ay gumagamit ng APNs bilang transport na may pagharang ng token sa pamamagitan ng MessagingDelegate.
  • HTTP v1 API ay inirerekomenda para sa pagpapadala sa panig ng server na may OAuth 2.0 authentication sa pamamagitan ng Service Account at suporta para sa analytics ng paghahatid.
  • Ang mga topic ay nagpapahintulot sa pagpapadala ng mga mensahe sa mga grupo ng subscriber, at ang mga condition ay nagpapahintulot sa pagsasama ng maraming topic para sa tumpak na segmentation.
  • Ang FCM ay libre nang walang limitasyon sa bilang ng mga mensahe, na may pag-imbak ng mga offline na mensahe hanggang 28 araw at maximum na laki ng payload na 4 KB.

Gagawa kami ng mobile application na turnkey

Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.

Pag-usapan ang proyekto

Basahin din