FCM — co to je, principy Firebase Cloud Messaging ve vývoji

Autor: IT Sectr Publikováno: 2026-03-19 Doba čtení: 8 min

FCM (Firebase Cloud Messaging) je multiplatformní služba od Googlu pro doručování push oznámení a přenos dat mezi serverem a mobilními aplikacemi. Podporuje Android, iOS a webové platformy prostřednictvím jednotného API. Podle Firebase Documentation zpracovává FCM denně více než 1 miliardu zpráv po celém světě.

Hlavní body

  • FCM — multiplatformní služba Googlu pro odesílání push oznámení a dat
  • Architektura — klient obdrží registrační token, server odesílá zprávy přes Firebase Connection Server
  • Typy zpráv — notification (automatické zobrazení) a data (plné zpracování v aplikaci)
  • Doručení — FCM používá trvalé připojení nebo prioritní fronty pro zaručení doručení
  • Integrace — připojení přes Firebase SDK, konfigurace google-services.json a konfigurace serveru

Co je FCM?

Firebase Cloud Messaging (FCM) je cloudová služba od Googlu, která zajišťuje spolehlivé doručování push oznámení a datových zpráv na mobilní zařízení. Dříve známá jako Google Cloud Messaging (GCM), FCM se stala hlavním nástrojem pro multiplatformní oznámení v ekosystému Firebase.

FCM automaticky vybírá optimální kanál doručení v závislosti na platformě: na Androidu používá vlastní FCM připojení, na iOS — APNS (přes FCM bránu). Vývojář nemusí implementovat dvě různé integrace — FCM přebírá směrování na sebe.

Služba poskytuje jednotné REST API a Admin SDK pro odesílání zpráv. To umožňuje odesílat oznámení ze strany serveru bez vázání na konkrétní platformu příjemce.

Klíčové možnosti FCM

FCM podporuje několik režimů doručení: jednu zprávu konkrétnímu zařízení, skupinové rozeslání podle tématu (topic) a segmentové odeslání podle podmínek (condition). K dispozici je také plánování odeslání a A/B testování obsahu oznámení.

Jak funguje Firebase Cloud Messaging?

Architektura FCM je založena na třech komponentách: klientská aplikace, Firebase Connection Server a aplikační server (app server). Klient se při spuštění zaregistruje v FCM a obdrží jedinečný registrační token — řetězec, který identifikuje zařízení pro danou aplikaci.

Aplikační server odešle požadavek na FCM REST API s uvedením tokenu příjemce nebo tématu. Firebase Connection Server doručí zprávu pomocí trvalého XMPP připojení nebo HTTP požadavku. Pokud je zařízení offline — zpráva je zařazena do fronty a doručena po obnovení připojení.

FCM garantuje doručení pomocí prioritních front a mechanismu potvrzení přijetí. Na Androidu je zpráva uložena až 28 dní ve frontě, na iOS — až 4 týdny (přes APNS). Po uplynutí lhůty je zpráva bez upozornění smazána.

Životní cyklus tokenu FCM

Registrační token se může změnit v několika případech: při obnovení dat aplikace, při aktualizaci na novou verzi nebo při vymazání mezipaměti. Aplikace by měla implementovat FirebaseMessagingService.onNewToken pro zpracování aktualizace tokenu a synchronizaci se serverem.

Typy zpráv FCM

FCM podporuje dva typy užitečného zatížení: notification a data. Každý typ určuje, jak a kdy je zpráva zpracována na zařízení příjemce.

ParametrNotificationData
Automatické zobrazeníAno, pokud je aplikace na pozadíNe, pouze v aplikaci
ZpracováníSystém — na pozadí; aplikace — na popředíVždy v aplikaci (onMessageReceived)
Maximální velikost4 KB4 KB
Vlastní klíčeOmezeny na předdefinovaná poleLibovolné páry klíč-hodnota
Vyžaduje CollapseKeyVolitelněVolitelně pro seskupení

V praxi se doporučuje používat data zprávy, pokud aplikace potřebuje plné zpracování oznámení v onMessageReceived. Notification zprávy jsou vhodné pro jednoduché scénáře, kde je systémové zobrazení dostačující.

FCM a APNS: srovnání přístupů

FCM a APNS jsou dvě hlavní služby push doručení. FCM funguje jako multiplatformní brána, APNS — pouze pro ekosystém Apple. Jejich klíčové rozdíly jsou v architektuře, požadavcích na certifikáty a mechanismech směrování.

  • Multiplatformnost — FCM podporuje Android, iOS, Web; APNS pouze iOS, macOS, watchOS, tvOS
  • Autentizace — FCM používá Server Key nebo OAuth 2.0; APNS — certifikát nebo Token-based (p8 key)
  • Priorita zprávy — FCM má normal/high; APNS — immediate/power-efficient consideration
  • Témata — FCM podporuje odběr témat z krabice; APNS vyžaduje serverovou logiku

Výběr mezi FCM a přímým APNS závisí na architektuře projektu. Pro multiplatformní aplikace je FCM optimální volbou. Pro projekty pouze iOS je přijatelná přímá práce s APNS přes HTTP/2 API.

Kdy zvolit FCM místo přímého APNS

FCM je ospravedlněn, když projekt současně používá Android a iOS, stejně jako při potřebě Firebase analýzy, A/B testování oznámení nebo témat bez serverové logiky. Přímý APNS je preferován pro aplikace pouze iOS s minimálními závislostmi a přísnými požadavky na zpoždění doručení.

Integrace FCM v Androidu

Pro připojení FCM k Android aplikaci je třeba přidat Firebase SDK a nakonfigurovat google-services.json v kořenu projektu. Po registraci tokenu je aplikace připravena přijímat zprávy prostřednictvím FirebaseMessagingService.

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

Po konfiguraci aplikace automaticky obdrží FCM token při prvním spuštění. Token je třeba odeslat na aplikační server pro následné odesílání oznámení na toto zařízení.

Konfigurace kanálu pro FCM oznámení

Na Androidu 8+ je před odesláním FCM oznámení s automatickým zobrazením nutné vytvořit NotificationChannel. FCM notification zprávy používají kanál s výchozím ID, ale doporučuje se vytvořit vlastní kanál prostřednictvím FirebaseMessagingService při přijetí první zprávy. Data zprávy nevyžadují kanál — aplikace sama rozhodne, jak a kdy oznámení zobrazit.

Integrace FCM v iOS

Na iOS funguje FCM jako prostředník mezi aplikačním serverem a APNS. Firebase obdrží zprávu od serveru, zabalí ji do formátu APNS a odešle přes Apple bránu. Vývojář musí nakonfigurovat APNS klíč nebo certifikát v konzoli 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")
    }
}

Na iOS probíhá registrace v APNS asynchronně. FCM SDK automaticky obdrží APNS token a předá jej Firebase serveru. didReceiveRegistrationToken se spustí při obdržení nového FCM tokenu, který kombinuje APNS token s identifikátorem projektu.

Kontrola stavu doručení

FCM poskytuje konzoli Firebase pro monitorování doručení: počet odeslaných, přijatých a zobrazených oznámení. K dispozici je také callback stavu přes Firebase Cloud Functions pro sledování chyb doručení na straně serveru. Klíčové metriky: impressions (zobrazení) a opens (otevření).

Nejlepší postupy FCM

Při práci s FCM je důležité správně vybrat typ zprávy pro každý scénář. Pro jednoduchá oznámení s automatickým zobrazením používejte notification zprávy. Pro případy, kdy aplikace potřebuje zpracovat data před zobrazením — data zprávy. Smíšený typ (notification + data) se doporučuje pouze pokud jsou data potřebná pro analýzu, ne pro změnu obsahu oznámení.

Správujte tokeny centrálně. Ukládejte aktuální tokeny na serveru v tabulce s vazbou na uživatele a platformu. Implementujte mechanismus čištění zastaralých tokenů: při chybě NotRegistered nebo InvalidRegistration odstraňte token z databáze. Tokeny se mění zřídka, ale jejich čištění je povinným prvkem podpory FCM.

Používejte kolapsové klíče (collapseKey) pro seskupování zpráv. Pokud odesíláte několik oznámení stejného typu (například „aktualizace kurzu měny”), nastavte stejný collapseKey. FCM doručí pouze poslední zprávu ze skupiny, což snižuje zatížení zařízení a neobtěžuje uživatele záplavou oznámení.

Sledujte doručení prostřednictvím Firebase Console a Cloud Functions. Analýza FCM ukazuje počet odeslaných, přijatých a zobrazených oznámení. Pokud je procento zobrazení nižší než 70 % — zkontrolujte nastavení kanálů na Androidu a oprávnění na iOS. Nízké doručení je často spojeno s vypnutými kanály nebo zákazem oznámení. Za páté: používejte A/B testování Firebase pro optimalizaci textu oznámení a času odeslání — to zvyšuje konverzi otevření o 15–25 % podle údajů Firebase.

Často kladené otázky

Jaký je rozdíl mezi FCM a GCM?

FCM je evoluční aktualizace GCM (Google Cloud Messaging). FCM nabízí zjednodušenou konfiguraci přes Firebase Console, vestavěnou analýzu, témata a podporu Web Push. GCM byl oficiálně vypnut v dubnu 2019, všechny projekty musí být migrovány na FCM.

Kolik zpráv lze odeslat přes FCM zdarma?

Firebase Cloud Messaging je bezplatná služba bez omezení počtu zpráv. Platba se účtuje pouze za používání dalších služeb Firebase, jako jsou Cloud Functions nebo Firestore. FCM nevyžaduje předplatné Spark nebo Blaze pro základní odesílání oznámení.

Proč se může změnit FCM token?

FCM token se mění při: obnovení aplikace ze zálohy, vymazání dat aplikace, přeinstalaci, aktualizaci na novou verzi se změnou Sender ID. Vždy zpracovávejte onNewToken ve FirebaseMessagingService pro odeslání nového tokenu na server.

Funguje FCM v Číně?

FCM od Googlu je blokován na území Číny. Pro doručování oznámení v Číně se používají alternativní služby: Huawei Push Kit, MiPush (Xiaomi), Oppo Push, Vivo Push. Pro multiplatformní doručení se používají služby více poskytovatelů jako Getui.

Jak zkontrolovat, že je FCM správně nakonfigurováno?

Použijte vestavěnou konzoli Firebase: vyberte „Cloud Messaging” — „Send Test Message”. Zadejte testovací token a odešlete notification zprávu. Na zařízení by se mělo objevit oznámení. Můžete také sledovat protokoly FirebaseMessagingService.onMessageReceived.

Shrnutí

  • FCM — multiplatformní cloudová služba Googlu pro doručování push oznámení a dat
  • Token — jedinečný identifikátor zařízení používaný pro cílené odesílání zpráv
  • Notification — typ zprávy s automatickým zobrazením systémem v režimu pozadí
  • Data — typ zprávy s plným užitečným zatížením zpracovávaným pouze v aplikaci
  • Témata — mechanismus skupinového rozeslání pomocí odběru témat bez ukládání tokenů na serveru
  • APNS brána — pro iOS FCM funguje jako prostředník, přenášející zprávy přes APNS
  • Zdarma — FCM neúčtuje poplatky za počet odeslaných zpráv

Vyvineme mobilní aplikaci na klíč

IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.

Prodiskutovat projekt

Přečtěte si také