FCM — wat is het, principes van Firebase Cloud Messaging in ontwikkeling

Auteur: IT Sectr Gepubliceerd: 2026-03-19 Leestijd: 8 min

FCM (Firebase Cloud Messaging) is een cross-platform dienst van Google voor het leveren van pushmeldingen en het overbrengen van gegevens tussen de server en mobiele applicaties. Het ondersteunt Android, iOS en webplatforms via één API. Volgens Firebase Documentation verwerkt FCM dagelijks meer dan 1 miljard berichten wereldwijd.

Belangrijkste punten

  • FCM — cross-platform dienst van Google voor het verzenden van pushmeldingen en gegevens
  • Architectuur — client ontvangt registratietoken, server stuurt berichten via Firebase Connection Server
  • Berichttypen — notification (automatische weergave) en data (volledige verwerking in de app)
  • Levering — FCM gebruikt permanente verbinding of prioriteitswachtrijen voor leveringsgarantie
  • Integratie — aansluiting via Firebase SDK, configuratie van google-services.json en serverconfiguratie

Wat is FCM?

Firebase Cloud Messaging (FCM) is een clouddienst van Google die betrouwbare levering van pushmeldingen en databerichten naar mobiele apparaten mogelijk maakt. Voorheen bekend als Google Cloud Messaging (GCM), is FCM het belangrijkste hulpmiddel geworden voor cross-platform meldingen in het Firebase-ecosysteem.

FCM kiest automatisch het optimale leveringskanaal afhankelijk van het platform: op Android gebruikt het zijn eigen FCM-verbinding, op iOS — APNS (via de FCM-gateway). De ontwikkelaar hoeft geen twee verschillende integraties te implementeren — FCM neemt de routering over.

De dienst biedt een uniforme REST API en Admin SDK voor het verzenden van berichten. Dit maakt het mogelijk om meldingen van de serverzijde te versturen zonder gebonden te zijn aan een specifiek platform van de ontvanger.

Belangrijkste mogelijkheden van FCM

FCM ondersteunt verschillende leveringsmodi: één bericht naar een specifiek apparaat, groepsverzending per onderwerp (topic) en segmentverzending op basis van voorwaarden (condition). Ook zijn planning van verzending en A/B-testen van meldingsinhoud beschikbaar.

Hoe werkt Firebase Cloud Messaging?

De architectuur van FCM is gebaseerd op drie componenten: de clientapplicatie, Firebase Connection Server en de applicatieserver (app server). De client registreert zich bij FCM bij het opstarten en ontvangt een uniek registratietoken — een string die het apparaat identificeert voor deze applicatie.

De applicatieserver stuurt een verzoek naar de FCM REST API, met vermelding van het token van de ontvanger of het onderwerp. Firebase Connection Server levert het bericht via een permanente XMPP-verbinding of een HTTP-verzoek. Als het apparaat offline is — wordt het bericht in de wachtrij geplaatst en geleverd wanneer de verbinding wordt hersteld.

FCM garandeert levering met behulp van prioriteitswachtrijen en een bevestigingsmechanisme. Op Android wordt het bericht tot 28 dagen in de wachtrij bewaard, op iOS — tot 4 weken (via APNS). Na het verstrijken van de termijn wordt het bericht zonder melding verwijderd.

Levenscyclus van het FCM-token

Het registratietoken kan in verschillende gevallen veranderen: bij het herstellen van applicatiegegevens, bij het updaten naar een nieuwe versie of bij het wissen van de cache. De applicatie moet FirebaseMessagingService.onNewToken implementeren voor het verwerken van tokenupdates en synchronisatie met de server.

Soorten FCM-berichten

FCM ondersteunt twee soorten payload: notification en data. Elk type bepaalt hoe en wanneer het bericht wordt verwerkt op het apparaat van de ontvanger.

ParameterNotificationData
Automatische weergaveJa, als de app op de achtergrond isNee, alleen in de app
VerwerkingSysteem — op achtergrond; app — op voorgrondAltijd in de app (onMessageReceived)
Maximale grootte4 KB4 KB
Aangepaste sleutelsBeperkt tot vooraf gedefinieerde veldenWillekeurige sleutel-waardeparen
Vereist CollapseKeyOptioneelOptioneel voor groepering

In de praktijk wordt aangeraden om data-berichten te gebruiken als de applicatie de melding volledig moet verwerken in onMessageReceived. Notification-berichten zijn geschikt voor eenvoudige scenario's waar systeemweergave voldoende is.

FCM en APNS: vergelijking van benaderingen

FCM en APNS zijn de twee belangrijkste push-leveringsdiensten. FCM werkt als een cross-platform gateway, APNS — alleen voor het Apple-ecosysteem. Hun belangrijkste verschillen zitten in architectuur, certificaatvereisten en routeringsmechanismen.

  • Cross-platform — FCM ondersteunt Android, iOS, Web; APNS alleen iOS, macOS, watchOS, tvOS
  • Authenticatie — FCM gebruikt Server Key of OAuth 2.0; APNS — certificaat of Token-based (p8 key)
  • Berichtprioriteit — FCM heeft normal/high; APNS — immediate/power-efficient consideration
  • Onderwerpen — FCM ondersteunt abonnement op onderwerpen uit de doos; APNS vereist serverlogica

De keuze tussen FCM en directe APNS hangt af van de projectarchitectuur. Voor cross-platform applicaties is FCM de optimale keuze. Voor iOS-only projecten is direct werken met APNS via HTTP/2 API acceptabel.

Wanneer FCM kiezen in plaats van directe APNS

FCM is gerechtvaardigd wanneer het project tegelijkertijd Android en iOS gebruikt, en ook bij behoefte aan Firebase-analytics, A/B-testen van meldingen of onderwerpen zonder serverlogica. Directe APNS heeft de voorkeur voor iOS-only applicaties met minimale afhankelijkheden en strikte vereisten voor leveringsvertraging.

FCM-integratie in Android

Om FCM met een Android-applicatie te verbinden, moet u Firebase SDK toevoegen en google-services.json configureren in de hoofdmap van het project. Na registratie van het token is de applicatie klaar om berichten te ontvangen via 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)
        }
    }
}

Na configuratie ontvangt de applicatie automatisch het FCM-token bij de eerste start. Het token moet naar de applicatieserver worden gestuurd voor het later verzenden van meldingen naar dit apparaat.

Kanaalconfiguratie voor FCM-meldingen

Op Android 8+ moet voordat een FCM-melding met automatische weergave wordt verzonden, een NotificationChannel worden aangemaakt. FCM notification-berichten gebruiken het kanaal met standaard-ID, maar het wordt aanbevolen om uw eigen kanaal te maken via FirebaseMessagingService bij ontvangst van het eerste bericht. Data-berichten hebben geen kanaal nodig — de applicatie beslist zelf hoe en wanneer de melding wordt weergegeven.

FCM-integratie in iOS

Op iOS fungeert FCM als tussenpersoon tussen de applicatieserver en APNS. Firebase ontvangt het bericht van de server, wikkelt het in APNS-formaat en stuurt het via de Apple-gateway. De ontwikkelaar moet de APNS-sleutel of het certificaat configureren in de Firebase-console.

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

Op iOS vindt registratie bij APNS asynchroon plaats. FCM SDK ontvangt automatisch het APNS-token en stuurt het naar de Firebase-server. didReceiveRegistrationToken wordt geactiveerd bij ontvangst van een nieuw FCM-token, dat het APNS-token combineert met de projectidentificatie.

Leveringsstatus controleren

FCM biedt de Firebase-console voor het monitoren van levering: aantal verzonden, ontvangen en weergegeven meldingen. Ook is een status-callback beschikbaar via Firebase Cloud Functions voor het volgen van leveringsfouten aan de serverzijde. Belangrijkste statistieken: impressions (weergaven) en opens (openingen).

Beste praktijken voor FCM

Bij het werken met FCM is het belangrijk om het juiste berichttype voor elk scenario te kiezen. Voor eenvoudige meldingen met automatische weergave gebruikt u notification-berichten. Voor gevallen waarin de applicatie gegevens moet verwerken voordat deze worden weergegeven — data-berichten. Het gemengde type (notification + data) wordt alleen aanbevolen als de gegevens nodig zijn voor analyse, niet voor het wijzigen van de meldingsinhoud.

Beheer tokens gecentraliseerd. Bewaar actuele tokens op de server in een tabel met koppeling aan gebruiker en platform. Implementeer een mechanisme voor het opschonen van verouderde tokens: verwijder bij fout NotRegistered of InvalidRegistration het token uit de database. Tokens veranderen zelden, maar het opschonen ervan is een verplicht onderdeel van FCM-ondersteuning.

Gebruik collapseKeys voor het groeperen van berichten. Als u meerdere meldingen van hetzelfde type verzendt (bijvoorbeeld „valutakoersupdate”), stel dan dezelfde collapseKey in. FCM levert alleen het laatste bericht uit de groep, wat de belasting van het apparaat vermindert en de gebruiker niet irriteert met een vloedgolf aan meldingen.

Bewaak de levering via Firebase Console en Cloud Functions. FCM-analytics toont het aantal verzonden, ontvangen en weergegeven meldingen. Als het weergavepercentage lager is dan 70% — controleer dan de kanaalinstellingen op Android en de machtigingen op iOS. Lage levering wordt vaak veroorzaakt door uitgeschakelde kanalen of een meldingsverbod. Ten vijfde: gebruik Firebase A/B-testen voor het optimaliseren van meldingstekst en verzendtijd — dit verhoogt de openingsconversie met 15–25% volgens Firebase-gegevens.

Veelgestelde vragen

Wat is het verschil tussen FCM en GCM?

FCM is een evolutionaire update van GCM (Google Cloud Messaging). FCM biedt vereenvoudigde configuratie via Firebase Console, ingebouwde analytics, onderwerpen en ondersteuning voor Web Push. GCM is officieel uitgeschakeld sinds april 2019, alle projecten moeten naar FCM worden gemigreerd.

Hoeveel berichten kunnen gratis via FCM worden verzonden?

Firebase Cloud Messaging is een gratis dienst zonder beperkingen op het aantal berichten. Betaling wordt alleen in rekening gebracht voor het gebruik van andere Firebase-diensten zoals Cloud Functions of Firestore. FCM vereist geen Spark- of Blaze-abonnement voor het basis verzenden van meldingen.

Waarom kan het FCM-token veranderen?

Het FCM-token verandert bij: herstellen van de app uit back-up, wissen van app-gegevens, herinstallatie, updaten naar een nieuwe versie met gewijzigde Sender ID. Verwerk altijd onNewToken in FirebaseMessagingService om het nieuwe token naar de server te sturen.

Werkt FCM in China?

Google FCM is geblokkeerd op het grondgebied van China. Voor het leveren van meldingen in China worden alternatieve diensten gebruikt: Huawei Push Kit, MiPush (Xiaomi), Oppo Push, Vivo Push. Voor cross-platform levering worden multi-provider diensten zoals Getui toegepast.

Hoe controleer ik of FCM correct is geconfigureerd?

Gebruik de ingebouwde Firebase-console: selecteer „Cloud Messaging” — „Send Test Message”. Voer het testtoken in en verzend een notification-bericht. Op het apparaat zou een melding moeten verschijnen. U kunt ook de FirebaseMessagingService.onMessageReceived-logboeken controleren.

Samenvatting

  • FCM — cross-platform clouddienst van Google voor het leveren van pushmeldingen en gegevens
  • Token — unieke apparaatidentificatie gebruikt voor gerichte berichtverzending
  • Notification — berichttype met automatische systeemweergave in de achtergrondmodus
  • Data — berichttype met volledige payload die alleen in de app wordt verwerkt
  • Onderwerpen — mechanisme voor groepsverzending via abonnement op onderwerpen zonder tokens op de server
  • APNS-gateway — voor iOS fungeert FCM als tussenpersoon, berichten via APNS
  • Gratis — FCM brengt geen kosten in rekening voor het aantal verzonden berichten

We ontwikkelen een mobiele applicatie turnkey

IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.

Bespreek het project

Lees ook