FCM — mi ez, a Firebase Cloud Messaging alapelvei a fejlesztésben

Szerző: IT Sectr Megjelenés: 2026-03-19 Olvasási idő: 8 perc

Az FCM (Firebase Cloud Messaging) a Google platformfüggetlen szolgáltatása a push-értesítések kézbesítésére és az adatok továbbítására a szerver és a mobilalkalmazások között. Támogatja az Android, iOS és webplatformokat egységes API-n keresztül. A Firebase Documentation szerint az FCM világszerte több mint 1 milliárd üzenetet dolgoz fel naponta.

Főbb pontok

  • FCM — a Google platformfüggetlen szolgáltatása push-értesítések és adatok küldésére
  • Architektúra — a kliens regisztrációs tokent kap, a szerver üzeneteket küld a Firebase Connection Serveren keresztül
  • Üzenettípusok — notification (automatikus megjelenítés) és data (teljes feldolgozás az alkalmazásban)
  • Kézbesítés — az FCM állandó kapcsolatot vagy prioritási sorokat használ a kézbesítés garantálására
  • Integráció — csatlakozás Firebase SDK-n keresztül, google-services.json beállítása és szerver konfiguráció

Mi az FCM?

A Firebase Cloud Messaging (FCM) egy felhőalapú szolgáltatás a Google-tól, amely megbízható push-értesítések és adatüzenetek kézbesítését biztosítja mobileszközökre. Korábban Google Cloud Messaging (GCM) néven ismert, az FCM a Firebase ökoszisztémában a platformfüggetlen értesítések fő eszközévé vált.

Az FCM automatikusan kiválasztja az optimális kézbesítési csatornát a platformtól függően: Androidon a saját FCM-kapcsolatot használja, iOS-en — az APNS-t (az FCM-átjárón keresztül). A fejlesztőnek nem kell két különböző integrációt megvalósítania — az FCM átveszi az útválasztást.

A szolgáltatás egységes REST API-t és Admin SDK-t biztosít az üzenetek küldéséhez. Ez lehetővé teszi az értesítések küldését a szerver oldaláról anélkül, hogy a címzett konkrét platformjához lenne kötve.

Az FCM fő képességei

Az FCM több kézbesítési módot támogat: egyetlen üzenet egy adott eszközre, csoportos küldés téma szerint (topic) és szegmentált küldés feltételek szerint (condition). A küldés ütemezése és az értesítések tartalmának A/B tesztelése is elérhető.

Hogyan működik a Firebase Cloud Messaging?

Az FCM architektúrája három összetevőn alapul: a kliensalkalmazáson, a Firebase Connection Serveren és az alkalmazásszerveren (app server). A kliens regisztrál az FCM-ben induláskor, és egy egyedi regisztrációs tokent kap — egy karakterláncot, amely azonosítja az eszközt az adott alkalmazáshoz.

Az alkalmazásszerver kérést küld az FCM REST API-nak, megadva a címzett tokenjét vagy témáját. A Firebase Connection Server az üzenetet állandó XMPP-kapcsolaton vagy HTTP-kérésen keresztül kézbesíti. Ha az eszköz offline — az üzenet sorba kerül, és a kapcsolat helyreállításakor kézbesítésre kerül.

Az FCM a prioritási sorok és a fogadás visszaigazolási mechanizmusa segítségével garantálja a kézbesítést. Androidon az üzenet 28 napig tárolódik a sorban, iOS-en — 4 hétig (APNS-en keresztül). A határidő lejárta után az üzenet értesítés nélkül törlődik.

Az FCM token életciklusa

A regisztrációs token több esetben is megváltozhat: az alkalmazás adatainak visszaállításakor, új verzióra frissítéskor vagy a gyorsítótár törlésekor. Az alkalmazásnak implementálnia kell a FirebaseMessagingService.onNewToken metódust a token frissítésének és a szerverrel való szinkronizálásának kezelésére.

FCM üzenettípusok

Az FCM kétféle hasznos terhet támogat: notification és data. Minden típus meghatározza, hogy az üzenet hogyan és mikor kerül feldolgozásra a címzett eszközén.

ParaméterNotificationData
Automatikus megjelenítésIgen, ha az alkalmazás háttérben vanNem, csak az alkalmazásban
FeldolgozásRendszer — háttérben; app — előtérbenMindig az alkalmazásban (onMessageReceived)
Maximális méret4 KB4 KB
Egyedi kulcsokElőre meghatározott mezőkre korlátozvaTetszőleges kulcs-érték párok
CollapseKey szükségesOpcionálisOpcionális csoportosításhoz

A gyakorlatban ajánlott data-üzeneteket használni, ha az alkalmazásnak teljes mértékben fel kell dolgoznia az értesítést az onMessageReceived-ben. A notification-üzenetek egyszerű forgatókönyvekhez alkalmasak, ahol a rendszer általi megjelenítés elegendő.

FCM és APNS: megközelítések összehasonlítása

Az FCM és az APNS a két fő push-kézbesítési szolgáltatás. Az FCM platformfüggetlen átjáróként működik, az APNS — csak az Apple ökoszisztéma számára. Fő különbségeik az architektúrában, a tanúsítványkövetelményekben és az útválasztási mechanizmusokban rejlenek.

  • Platformfüggetlenség — az FCM támogatja az Android, iOS, Web; az APNS csak iOS, macOS, watchOS, tvOS
  • Hitelesítés — az FCM Server Key-t vagy OAuth 2.0-t használ; az APNS — tanúsítványt vagy Token-based (p8 key)
  • Üzenet prioritás — az FCM normal/high; az APNS — immediate/power-efficient consideration
  • Témák — az FCM támogatja a témákra való feliratkozást a dobozból; az APNS szerverlogikát igényel

Az FCM és a közvetlen APNS közötti választás a projekt architektúrájától függ. Platformfüggetlen alkalmazásokhoz az FCM az optimális választás. Csak iOS projektekhez a közvetlen APNS-sel való munka a HTTP/2 API-n keresztül elfogadható.

Mikor válasszuk az FCM-t a közvetlen APNS helyett

Az FCM indokolt, ha a projekt egyszerre használ Androidot és iOS-t, valamint ha Firebase analitikára, értesítések A/B tesztelésére vagy témákra van szükség szerverlogika nélkül. A közvetlen APNS előnyösebb a csak iOS alkalmazásokhoz, minimális függőségekkel és szigorú kézbesítési késleltetési követelményekkel.

FCM integráció Androidban

Az FCM Android-alkalmazáshoz csatlakoztatásához hozzá kell adni a Firebase SDK-t és konfigurálni kell a google-services.json-t a projekt gyökerében. A token regisztrációja után az alkalmazás készen áll az üzenetek fogadására a FirebaseMessagingService segítségével.

kotlin
// build.gradle (Modul)
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)
        }
    }
}

A konfiguráció után az alkalmazás automatikusan megkapja az FCM tokent az első indításkor. A tokent el kell küldeni az alkalmazásszervernek az értesítések későbbi küldéséhez erre az eszközre.

Csatorna beállítása FCM-értesítésekhez

Android 8+ rendszeren az automatikus megjelenítésű FCM-értesítés elküldése előtt létre kell hozni egy NotificationChannel-t. Az FCM notification-üzenetek az alapértelmezett ID-jű csatornát használják, de ajánlott saját csatornát létrehozni a FirebaseMessagingService segítségével az első üzenet fogadásakor. A data-üzenetek nem igényelnek csatornát — az alkalmazás maga dönti el, hogyan és mikor jeleníti meg az értesítést.

FCM integráció iOS-ben

iOS-ben az FCM közvetítőként működik az alkalmazásszerver és az APNS között. A Firebase megkapja az üzenetet a szervertől, APNS formátumba csomagolja, és elküldi az Apple-átjárón keresztül. A fejlesztőnek konfigurálnia kell az APNS-kulcsot vagy tanúsítványt a Firebase konzolban.

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

iOS-ben az APNS-ben való regisztráció aszinkron módon történik. Az FCM SDK automatikusan megkapja az APNS tokent, és továbbítja a Firebase szervernek. A didReceiveRegistrationToken egy új FCM token fogadásakor aktiválódik, amely egyesíti az APNS tokent a projektazonosítóval.

A kézbesítési állapot ellenőrzése

Az FCM Firebase konzolt biztosít a kézbesítés monitorozásához: elküldött, fogadott és megjelenített értesítések száma. Elérhető továbbá egy állapot-visszahívás a Firebase Cloud Functions segítségével a kézbesítési hibák nyomon követésére a szerver oldalán. Főbb mérőszámok: impressions (megjelenítések) és opens (megnyitások).

FCM bevált gyakorlatok

Az FCM-mel való munka során fontos a megfelelő üzenettípus kiválasztása minden forgatókönyvhöz. Egyszerű, automatikusan megjelenő értesítésekhez használjon notification-üzeneteket. Azokban az esetekben, amikor az alkalmazásnak fel kell dolgoznia az adatokat a megjelenítés előtt — data-üzeneteket. A vegyes típus (notification + data) csak akkor ajánlott, ha az adatok analitikához szükségesek, nem az értesítés tartalmának megváltoztatásához.

Központilag kezelje a tokeneket. Tárolja az aktuális tokeneket a szerveren egy táblázatban, felhasználóhoz és platformhoz kapcsolva. Valósítson meg egy elavult tokenek tisztítási mechanizmust: NotRegistered vagy InvalidRegistration hiba esetén törölje a tokent az adatbázisból. A tokenek ritkán változnak, de tisztításuk az FCM-támogatás kötelező eleme.

Használjon összecsukási kulcsokat (collapseKey) az üzenetek csoportosításához. Ha több azonos típusú értesítést küld (például „valutaárfolyam-frissítés”), állítsa be ugyanazt a collapseKey-t. Az FCM csak a csoport utolsó üzenetét kézbesíti, ami csökkenti az eszköz terhelését és nem irritálja a felhasználót az értesítések áradatával.

Figyelje a kézbesítést a Firebase Console és a Cloud Functions segítségével. Az FCM analitika megjeleníti az elküldött, fogadott és megjelenített értesítések számát. Ha a megjelenítések aránya 70% alatt van — ellenőrizze a csatornabeállításokat Androidon és az engedélyeket iOS-en. Az alacsony kézbesítés gyakran kapcsolódik a letiltott csatornákhoz vagy az értesítési tilalomhoz. Ötödször: használja a Firebase A/B tesztelését az értesítések szövegének és a küldési idő optimalizálásához — ez 15–25%-kal növeli a megnyitási konverziót a Firebase adatai szerint.

Gyakran ismételt kérdések

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

Az FCM a GCM (Google Cloud Messaging) evolúciós frissítése. Az FCM egyszerűsített beállítást kínál a Firebase Console-on keresztül, beépített analitikát, témákat és Web Push támogatást. A GCM hivatalosan 2019 áprilisában lett kikapcsolva, minden projektet migrálni kell az FCM-re.

Hány üzenet küldhető ingyenesen az FCM-en keresztül?

A Firebase Cloud Messaging egy ingyenes szolgáltatás, üzenetszám-korlátozás nélkül. Fizetés csak más Firebase-szolgáltatások, például a Cloud Functions vagy a Firestore használatáért történik. Az FCM nem igényel Spark vagy Blaze előfizetést az alapvető értesítésküldéshez.

Miért változhat meg az FCM token?

Az FCM token a következő esetekben változik: az alkalmazás biztonsági másolatból történő visszaállításakor, az alkalmazás adatainak törlésekor, újratelepítéskor, új verzióra frissítéskor a Sender ID megváltozásával. Mindig dolgozza fel az onNewToken eseményt a FirebaseMessagingService-ben az új token szerverre küldéséhez.

Működik az FCM Kínában?

A Google FCM blokkolva van Kína területén. Az értesítések Kínában történő kézbesítéséhez alternatív szolgáltatásokat használnak: Huawei Push Kit, MiPush (Xiaomi), Oppo Push, Vivo Push. A platformfüggetlen kézbesítéshez több szolgáltatós megoldásokat alkalmaznak, mint például a Getui.

Hogyan ellenőrizhető, hogy az FCM megfelelően van konfigurálva?

Használja a beépített Firebase konzolt: válassza a „Cloud Messaging” — „Send Test Message” lehetőséget. Adja meg a teszt tokent, és küldjön egy notification üzenetet. Az eszközön meg kell jelennie egy értesítésnek. Ezenkívül figyelheti a FirebaseMessagingService.onMessageReceived naplóit.

Összefoglalás

  • FCM — a Google platformfüggetlen felhőszolgáltatása push-értesítések és adatok kézbesítésére
  • Token — az eszköz egyedi azonosítója, amely a célzott üzenetküldéshez használatos
  • Notification — üzenettípus automatikus rendszer-megjelenítéssel háttér módban
  • Data — üzenettípus teljes hasznos teherrel, amely csak az alkalmazásban kerül feldolgozásra
  • Témák — csoportos küldési mechanizmus témákra való feliratkozással, tokenek szerveren történő tárolása nélkül
  • APNS-átjáró — iOS esetén az FCM közvetítőként működik, az üzeneteket APNS-en keresztül továbbítja
  • Ingyenes — az FCM nem számít fel díjat az elküldött üzenetek számáért

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