Firebase Cloud Messaging: mi ez, működési elv és push értesítések

Szerző: IT Sectr Megjelenés: 2026-04-29 Olvasási idő: 9 perc

Firebase Cloud Messaging (FCM) — egy platformok közötti szolgáltatás push értesítések és üzenetek szállítására a Google-tól, mobil és webes alkalmazások számára. Az FCM megbízható adatátvitelt biztosít a szerver és a kliens eszközök között anélkül, hogy állandó hálózati kapcsolatot kellene fenntartani. A Firebase Documentation, 2026 szerint az FCM infrastruktúráján naponta több mint 300 milliárd üzenet halad át világszerte. A szolgáltatás támogatja mind az automatikusan megjelenő értesítéseket, mind a data üzeneteket a rejtett adatátvitelhez a háttérben.

Főbb pontok

  • FCM — ingyenes push értesítési szolgáltatás a Google-tól Android, iOS és Web támogatással egyetlen API-n és Firebase Console-on keresztül.
  • Üzenettípusok — a notification üzenetek automatikusan megjelennek a rendszer által, a data üzenetek lehetővé teszik tetszőleges JSON küldését és feldolgozását az alkalmazásban.
  • Eszköz tokenek — minden alkalmazás egyedi Registration Token-t kap, amelyet a szerver használ a push értesítések célzott küldéséhez.
  • Kézbesítési prioritások — a normal és high prioritások meghatározzák a rendszer viselkedését akkumulátorkíméléskor: a high üzenetek felébresztik az eszközt a Doze módból.
  • Témák és csoportok — az FCM támogatja a témákra való feliratkozást tömeges küldéshez és a Device Groups-t egy felhasználó több eszközére történő küldéshez.

Mi az a Firebase Cloud Messaging

Firebase Cloud Messaging — egy Google felhőszolgáltatás, amely push értesítések és data üzenetek átvitelét biztosítja az alkalmazásszerver és a kliens eszközök között. A szolgáltatás felváltotta az elavult Google Cloud Messaging (GCM) szolgáltatást, és szabványos megoldássá vált a push kézbesítésére a Firebase ökoszisztémában. Az FCM támogatja az Android, iOS, Web és Unity platformokat, egységes küldési felületet biztosítva a célplatformtól függetlenül.

Az FCM főbb képességei

A szolgáltatás több üzenetkézbesítési mechanizmust kínál, amelyek mindegyike a saját feladatát oldja meg. A notification üzeneteket a rendszer automatikusan megjeleníti érkezéskor — a fejlesztőnek nem kell kódot írnia az értesítés megjelenítéséhez. A data üzenetek tetszőleges payload-ot küldenek kulcs-érték párok formájában, és az alkalmazáson belül dolgozódnak fel. A kombinált üzenetek egyszerre tartalmaznak látható és rejtett részt a maximális rugalmasság érdekében.

Előnyök a saját megoldással szemben

Saját push szerver implementálása állandó TCP kapcsolat fenntartását igényli minden eszközzel, ami hatástalan és nem biztonságos. Az FCM a Google egységes infrastruktúráját használja, amely egyszerre milliárdnyi eszközzel tart kapcsolatot. A szolgáltatás automatikusan kezeli az ismételt kézbesítési kísérleteket, az üzenetsorokat és a terheléselosztást, felszabadítva a fejlesztőt e feladatok önálló megoldásának szükségessége alól.

Hogyan működik a Firebase Cloud Messaging

Az FCM architektúrája három fő összetevőből áll: a szolgáltató szerverből (az Ön backendje), a Firebase Cloud Messaging szerverből és a kliens alkalmazásból az eszközön. Amikor a szerver üzenetet küld, az először az FCM infrastruktúrába kerül, amely a cél eszközhöz irányítja. Ha az eszköz offline, az FCM eltárolja az üzenetet egy sorban, és a kapcsolat helyreállításakor kézbesíti.

Eszköz regisztráció és token megszerzése

Az első indításkor az alkalmazás meghívja a Firebase SDK-t, amely regisztrálja az eszközt az FCM szolgáltatásban, és egyedi Registration Token-t kap. Ez a token egy körülbelül 150 karakter hosszúságú karaktersorozat, amely az alkalmazás egy adott példányát azonosítja egy adott eszközön. A token megváltozhat az alkalmazás újratelepítésekor, adatok törlésekor vagy biztonsági mentésből való visszaállításkor — a fejlesztőnek az onNewToken delegált segítségével kell kezelnie a token frissítését.

Az üzenet életciklusa

Amikor a szerver kérést küld az FCM API-n keresztül, az üzenet több szakaszon megy keresztül. Fogadás és érvényesítés — az FCM ellenőrzi a kérés helyességét és a cél eszköz létezését. Sor — ha az eszköz nem elérhető, az üzenet tárolási sorba kerül. Útválasztás — az FCM meghatározza az optimális kézbesítési csatornát (Wi-Fi vagy mobil adat). Kézbesítés — a rendszer továbbítja az üzenetet a cél alkalmazásnak. Sikeres kézbesítés után az FCM visszaadja a szervernek az üzenet azonosítóját.

Üzenettípusok az FCM-ben

A Firebase Cloud Messaging háromféle üzenetet támogat, amelyek mindegyike saját feldolgozási jellemzőkkel rendelkezik a kliens oldalon. A notification üzeneteket a Google Play Services rendszerszolgáltatás dolgozza fel Androidban és az APNs iOS-ben, és automatikusan push bannerként jelennek meg. A data üzenetek közvetlenül az alkalmazásba kerülnek, és az onMessageReceived callback-en keresztül dolgozódnak fel Androidban, illetve az application(_:didReceiveRemoteNotification:) callback-en keresztül iOS-ben.

Notification üzenetek

A notification üzenet előre meghatározott mezőket tartalmaz: title, body, kép URL és értesítési hang. A rendszer automatikusan létrehozza és megjeleníti az értesítést a rendszer tálcáján, még akkor is, ha az alkalmazás a háttérben van vagy le van állítva. A felhasználó egy szabványos bannert lát címmel és szöveggel, és kattintáskor az alkalmazás a payload-ban átadott adatokkal nyílik meg. Ha az alkalmazás aktív, a notification üzenet elfogható és feldolgozható a kódban.

Data üzenetek

A data üzenet egyedi kulcs-érték párok halmaza előre meghatározott mezők nélkül. A payload-ot a rendszer nem dolgozza fel automatikusan — az alkalmazás nyers adatokat kap, és azokat tetszőlegesen értelmezheti. A data üzenetek háttérben történő adatszinkronizálásra, helyi gyorsítótár frissítésére, szinkronizáció indítására vagy parancsok továbbítására használatosak értesítés megjelenítése nélkül. Androidban a data üzenet mindig kézbesítésre kerül, még akkor is, ha az alkalmazás le van állítva vagy a háttérben fut.

Kombinált üzenetek

Az FCM lehetővé teszi olyan üzenet küldését, amely egyszerre tartalmaz notification részt (megjelenítéshez) és data részt (feldolgozáshoz). A kombinált payload magában foglalja mind a notification előre meghatározott mezőit, mind a data tetszőleges kulcsait. A rendszer a notification részből jeleníti meg az értesítést, a data rész pedig az alkalmazás intent extras-aiba kerül megnyitáskor. Ez olyan forgatókönyveknél hasznos, ahol értesítést kell mutatni a felhasználónak, és egyidejűleg kontextust kell átadni egy adott képernyőre navigáláshoz.

TípusAutomatikus megjelenítésHáttérben feldolgozásPélda
NotificationIgen, a rendszer általAutomatikusan, kód nélkülÜdvözlő push értesítés
DataNemAz alkalmazás callback-jén keresztülAdatszinkronizálás a háttérben
KombináltIgen, notification részData rész megnyitáskorÉrtesítés + rendelési link

FCM beállítása Androidban

Az FCM integrációja Androidban a Firebase SDK csatlakoztatásával kezdődik a build.gradle fájlon keresztül alkalmazás szinten. A függőségek és a google-services.json fájl hozzáadása után az alkalmazás automatikusan megkapja a Registration Token-t, amelyet a FirebaseMessagingService callback továbbít. Az értesítések fogadásához létre kell hozni egy szolgáltatást, amely a FirebaseMessagingService-ből származik, és regisztrálni kell az AndroidManifest.xml-ben.

Inicializálás és token megszerzése

Az SDK csatlakoztatása után a Firebase automatikusan létrehozza az eszköz tokenjét további kód nélkül. A token elérhető a FirebaseMessaging.getInstance().token segítségével, amely Task-t ad vissza. A token frissítések nyomon követéséhez az onNewToken metódus kerül felülírásra a szolgáltatásban. A token-t át kell adni a szolgáltató szerverének, hogy a szerver push értesítéseket küldhessen erre az eszközre.

kotlin
class MyFirebaseMessagingService :
    FirebaseMessagingService() {

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

    override fun onMessageReceived(
        message: RemoteMessage
    ) {
        val data = message.data
        val title = "Új üzenet"
        val body = data["body"] ?: ""
        showNotification(title, body)
    }
}

A szolgáltatás regisztrálása a manifestben

Az FCM üzenetek fogadására szolgáló szolgáltatást regisztrálni kell az AndroidManifest.xml-ben a megfelelő intent-filter-rel. A service tag hozzáadása INTERNET engedéllyel és az action megadásával. A szolgáltatás regisztrációja nélkül az üzenetek nem kerülnek kézbesítésre az alkalmazásnak a háttérben. Az értesítések megjelenítéséhez Android 13+-ban runtime engedély, a POST_NOTIFICATIONS szükséges.

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>

FCM beállítása iOS-ben

Az FCM integrációja iOS-ben konfigurációt igényel mind az Apple Push Notification Service (APNs) oldalán, mind a Firebase Console-ban. Ellentétben Androiddal, ahol az FCM közvetlenül kezeli a kapcsolatot, iOS-ben az FCM az APNs-t használja szállítási rétegként. Az alkalmazás regisztrál a push értesítések fogadására az UIApplication.shared.registerForRemoteNotifications segítségével, a Firebase SDK pedig elfogja a kapott device token-t, és összekapcsolja az FCM Registration Token-nel.

APNs konfigurálása és regisztráció értesítésekre

Az FCM működéséhez iOS-ben fel kell tölteni egy APNs kulcsot vagy tanúsítványt a Firebase Console-ba. Az APNs kulcs — egy modern hitelesítési módszer tanúsítványok nélkül (az Apple ajánlja). A kulcs az Apple Developer Portal Keys szekciójában jön létre, és a Firebase Console Cloud Messaging beállításaiban kerül feltöltésre. Az APNs konfigurálása után az alkalmazás engedélyt kér az értesítésekre az UNUserNotificationCenter-en keresztül, és regisztrál az APNs-en keresztül.

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
    }
}

Bejövő értesítések feldolgozása

A fogadott értesítések feldolgozásához az UNUserNotificationCenter delegált implementálása szükséges. A willPresent metódus akkor hívódik meg, amikor az értesítés aktív alkalmazás mellett érkezik — itt megjeleníthető egy egyedi in-app értesítés, vagy figyelmen kívül hagyható a rendszer banner. A didReceive metódus akkor hívódik meg, amikor a felhasználó az értesítésre kattint — itt történik a megfelelő képernyőre navigálás. A data üzenetekhez a MessagingDelegate delegált használatos, amely a payload-ot kapja az FCM üzenet háttérben történő fogadásakor.

Üzenetek küldése a szerverről

Szerver oldali küldés az FCM üzeneteknek a HTTP v1 API Firebase Cloud Messaging vagy az elavult Firebase Cloud Messaging API segítségével történik. A HTTP v1 API az ajánlott módszer, OAuth 2.0 hitelesítést használ Service Account-on keresztül, és támogatja az FCM összes modern képességét, beleértve a kézbesítési analitikát és az értesítések A/B tesztelését. A kérés POST metódussal kerül elküldésre a https://fcm.googleapis.com/v1/projects/{project_id}/messages:send végpontra.

HTTP v1 kérés formátuma

A kérés törzse egy JSON objektumot tartalmaz az üzenet információival: target (token, téma vagy feltétel), notification (megjelenítéshez) és data (egyedi payload). Hitelesítés a Service Account JSON kulcson keresztül, amely a szerver környezeti változóiba kerül betöltésre. A hozzáférési token a google-auth-library könyvtáron keresztül jön létre. A Google a Firebase Admin SDK használatát ajánlja a hitelesítés és az ismételt próbálkozások automatikus kezeléséhez.

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% kedvezmény", body: "Minden szolgáltatásra ma" },
    data: { screen: "promo", promoId: "324" },
    android: { priority: "high" },
    apns: { payload: { aps: { sound: "default" } } }
}

admin.messaging().send(message)
    .then(response => {
        console.log("Sikeresen elküldve:", response)
    })
    .catch(error => {
        console.log("Küldési hiba:", error)
    })

Témák és tömeges küldés

Az értesítések felhasználói csoportnak történő küldéséhez az FCM támogatja a témákra való feliratkozást. A téma (topic) — egy elnevezett csatorna, amelyre a kliens alkalmazás a FirebaseMessaging.getInstance().subscribeToTopic() segítségével iratkozik fel. A szerver üzenetet küldhet egy témára, amely az összes feliratkozott eszközre kézbesítésre kerül. A témák alkalmasak hírlevelekhez, promóciós értesítésekhez és esemény push-okhoz. Pontosabb szegmentáláshoz feltételek (conditions) használhatók több téma alapján logikai operátorokkal.

Gyakran ismételt kérdések

Mi a különbség az FCM és az APNs között?

Az FCM Androidban a Google saját infrastruktúráján keresztül működik, iOS-ben pedig az APNs-t használja szállítási protokollként. Az FCM egységes API-t biztosít mindkét platformhoz, automatikus offline üzenettárolást és kézbesítési analitikát, ami a tiszta APNs-ben nem található meg.

Küldhetők FCM üzenetek szerver nélkül?

Igen, a Firebase Console Cloud Messaging szekciójában kézzel küldhetők értesítések kiválasztott eszközökre, témákra vagy célcsoport-szegmensekre. A funkció tesztelésre és egyszeri küldésekre alkalmas, de nem helyettesíti a szerver integrációt éles alkalmazásokhoz.

Mit tegyek, ha az eszköz token megváltozott?

Iratkozzon fel a token frissítésekre az onNewToken segítségével a FirebaseMessagingService-ben (Android) vagy a MessagingDelegate-ben (iOS). Token változáskor küldje el az új token-t a szerverre, és törölje a régit. A szervernek frissítenie kell az adatbázist, és le kell állítania a küldési kísérleteket az elavult token-re.

Hogyan kezeli az FCM az offline eszközöket?

Az FCM tárolja az üzenetet a sorban akár 28 napig, és a kapcsolat helyreállításakor kézbesíti. A notification üzeneteknél csak az utolsó üzenet kerül összecsukásra minden egyes összecsukási csoporthoz. A data üzenetek külön tárolódnak, és a küldés sorrendjében kerülnek kézbesítésre összecsukás nélkül.

Mennyibe kerül a Firebase Cloud Messaging használata?

Az FCM teljesen ingyenes az üzenetek számának korlátozása nélkül. Az FCM használata nem számolódik el sem a Spark terv, sem a Blaze terv keretében. Korlátozások csak a payload méretére vonatkoznak: notification üzeneteknél 4 KB-ig, data üzeneteknél 2 KB-ig.

Összefoglalás

  • Firebase Cloud Messaging — platformok közötti push értesítési szolgáltatás a Google-tól, amely Android, iOS, Web és Unity támogatást nyújt egyetlen API-n keresztül.
  • Az FCM architektúrája a szolgáltató szerverből, a Firebase infrastruktúrából és a kliens alkalmazásból áll, megbízható üzenetkézbesítést biztosítva a Google globális hálózatán keresztül.
  • Három üzenettípus — notification (automatikus megjelenítés), data (tetszőleges payload UI nélkül) és kombinált (mindkét típus egy üzenetben).
  • Az FCM Androidban a FirebaseMessagingService-en keresztül működik saját kapcsolattal, iOS-ben pedig az APNs-t használja szállításként a token elfogásával a MessagingDelegate-en keresztül.
  • HTTP v1 API ajánlott szerver oldali küldéshez OAuth 2.0 hitelesítéssel Service Account-on keresztül és kézbesítési analitika támogatással.
  • A témák lehetővé teszik üzenetek küldését feliratkozói csoportoknak, a feltételek (conditions) pedig több téma kombinálását a pontos szegmentáláshoz.
  • Az FCM ingyenes üzenetszám korlátozás nélkül, offline üzenetek 28 napos tárolásával és maximum 4 KB payload mérettel.

Kulcsrakész mobilalkalmazást fejlesztünk

Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.

Projekt megbeszélése

Olvassa el is