FCM — шта је то, принципи Firebase Cloud Messaging у развоју

Аутор: IT Sectr Објављено: 2026-03-19 Време читања: 8 мин

FCM (Firebase Cloud Messaging) је међуплатформски сервис компаније Google за испоруку push обавештења и пренос података између сервера и мобилних апликација. Подржава Android, iOS и веб платформе преко јединственог API-ја. Према Firebase Documentation, FCM обрађује преко милијарду порука дневно широм света.

Главне тачке

  • FCM — међуплатформски сервис Google-а за слање push обавештења и података
  • Архитектура — клијент добија регистрациони токен, сервер шаље поруке преко Firebase Connection Server-а
  • Типови порука — notification (аутоматски приказ) и data (потпуна обрада у апликацији)
  • Испорука — FCM користи сталну везу или приоритетне редове за гарантовање испоруке
  • Интеграција — повезивање преко Firebase SDK, подешавање google-services.json и конфигурација сервера

Шта је FCM?

Firebase Cloud Messaging (FCM) је облачни сервис компаније Google који обезбеђује поуздану испоруку push обавештења и порука са подацима на мобилне уређаје. Раније познат као Google Cloud Messaging (GCM), FCM је постао главни алат за међуплатформска обавештења у Firebase екосистему.

FCM аутоматски бира оптимални канал испоруке у зависности од платформе: на Android-у користи сопствену FCM везу, на iOS-у — APNS (преко FCM пролаза). Програмер не мора да имплементира две различите интеграције — FCM преузима рутирање на себе.

Сервис пружа јединствени REST API и Admin SDK за слање порука. Ово омогућава слање обавештења са серверске стране без везивања за одређену платформу примаоца.

Кључне могућности FCM-а

FCM подржава неколико начина испоруке: једна порука одређеном уређају, групна достава по теми (topic) и сегментно слање по условима (condition). Такође су доступни заказивање слања и A/B тестирање садржаја обавештења.

Како ради Firebase Cloud Messaging?

Архитектура FCM-а се заснива на три компоненте: клијентска апликација, Firebase Connection Server и сервер апликације (app server). Клијент се региструје у FCM-у при покретању и добија јединствени регистрациони токен — низ који идентификује уређај за дату апликацију.

Сервер апликације шаље захтев FCM REST API-ју, наводећи токен примаоца или тему. Firebase Connection Server доставља поруку користећи сталну XMPP везу или HTTP захтев. Ако је уређај ван мреже — порука се ставља у ред и доставља када се веза успостави.

FCM гарантује испоруку помоћу приоритетних редова и механизма потврде пријема. На Android-у порука се чува до 28 дана у реду, на iOS-у — до 4 недеље (преко APNS-а). Након истека рока, порука се брише без обавештења.

Животни циклус FCM токена

Регистрациони токен се може променити у неколико случајева: при обнављању података апликације, при ажурирању на нову верзију или при чишћењу кеша. Апликација треба да имплементира FirebaseMessagingService.onNewToken за обраду ажурирања токена и синхронизацију са сервером.

Типови порука FCM

FCM подржава два типа корисног терета: notification и data. Сваки тип одређује како и када се порука обрађује на уређају примаоца.

ПараметарNotificationData
Аутоматски приказДа, ако је апликација у позадиниНе, само у апликацији
ОбрадаСистем — у позадини; апликација — у предњем плануУвек у апликацији (onMessageReceived)
Максимална величина4 KB4 KB
Прилагођени кључевиОграничени на предефинисана пољаБило који парови кључ-вредност
Захтева CollapseKeyОпционалноОпционално за груписање

У пракси, препоручује се коришћење data порука ако апликацији треба потпуна обрада обавештења у onMessageReceived. Notification поруке су погодне за једноставне сценарије где је системски приказ довољан.

FCM и APNS: поређење приступа

FCM и APNS су два главна сервиса за испоруку push порука. FCM ради као међуплатформски пролаз, APNS — само за Apple екосистем. Њихове кључне разлике су у архитектури, захтевима за сертификате и механизмима рутирања.

  • Међуплатформскост — FCM подржава Android, iOS, Web; APNS само iOS, macOS, watchOS, tvOS
  • Аутентификација — FCM користи Server Key или OAuth 2.0; APNS — сертификат или Token-based (p8 key)
  • Приоритет поруке — FCM има normal/high; APNS — immediate/power-efficient consideration
  • Теме — FCM подржава претплату на теме из кутије; APNS захтева серверску логику

Избор између FCM-а и директног APNS-а зависи од архитектуре пројекта. За међуплатформске апликације, FCM је оптималан избор. За само iOS пројекте, прихватљив је директан рад са APNS-ом преко HTTP/2 API-ја.

Када изабрати FCM уместо директног APNS-а

FCM је оправдан када пројекат истовремено користи Android и iOS, као и при потреби за Firebase аналитиком, A/B тестирањем обавештења или темама без серверске логике. Директан APNS је пожељан за само iOS апликације са минималним зависностима и строгим захтевима за кашњење испоруке.

Интеграција FCM у Android-у

За повезивање FCM-а са Android апликацијом потребно је додати Firebase SDK и подесити google-services.json у корену пројекта. Након регистрације токена, апликација је спремна да прима поруке преко 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)
        }
    }
}

Након подешавања, апликација аутоматски добија FCM токен при првом покретању. Токен треба послати на сервер апликације ради накнадног слања обавештења на овај уређај.

Подешавање канала за FCM обавештења

На Android-у 8+ пре слања FCM обавештења са аутоматским приказом потребно је креирати NotificationChannel. FCM notification поруке користе канал са подразумеваним ID-јем, али се препоручује креирање сопственог канала преко FirebaseMessagingService при пријему прве поруке. Data поруке не захтевају канал — апликација сама одлучује како и када да прикаже обавештење.

Интеграција FCM у iOS-у

На iOS-у, FCM делује као посредник између сервера апликације и APNS-а. Firebase прима поруку од сервера, увија је у APNS формат и шаље кроз Apple пролаз. Програмер треба да подеси APNS кључ или сертификат у 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")
    }
}

На iOS-у, регистрација у APNS-у се одвија асинхроно. FCM SDK аутоматски добија APNS токен и прослеђује га Firebase серверу. didReceiveRegistrationToken се покреће при добијању новог FCM токена, који комбинује APNS токен са идентификатором пројекта.

Провера статуса испоруке

FCM пружа Firebase конзолу за праћење испоруке: број послатих, примљених и приказаних обавештења. Такође је доступан повратни позив статуса преко Firebase Cloud Functions за праћење грешака испоруке на страни сервера. Кључне метрике: impressions (прикази) и opens (отварања).

Најбоље праксе FCM-а

При раду са FCM-ом, важно је правилно одабрати тип поруке за сваки сценарио. За једноставна обавештења са аутоматским приказом користите notification поруке. За случајеве када апликација треба да обради податке пре приказа — data поруке. Мешовити тип (notification + data) се препоручује само ако су подаци потребни за аналитику, а не за промену садржаја обавештења.

Управљајте токенима централизовано. Чувајте актуелне токене на серверу у табели са везом ка кориснику и платформи. Имплементирајте механизам чишћења застарелих токена: при грешци NotRegistered или InvalidRegistration, уклоните токен из базе. Токени се ретко мењају, али њихово чишћење је обавезан елемент подршке FCM-а.

Користите кључеве колапса (collapseKey) за груписање порука. Ако шаљете неколико обавештења истог типа (на пример, „ажурирање курса валута”), подесите исти collapseKey. FCM ће доставити само последњу поруку из групе, што смањује оптерећење уређаја и не иритира корисника поплавом обавештења.

Пратите испоруку преко Firebase Console и Cloud Functions. Аналитика FCM-а показује број послатих, примљених и приказаних обавештења. Ако је проценат приказа нижи од 70% — проверите подешавања канала на Android-у и дозволе на iOS-у. Ниска испорука је често повезана са искљученим каналима или забраном обавештења. Пето: користите A/B тестирање Firebase-а за оптимизацију текста обавештења и времена слања — ово повећава конверзију отварања за 15–25% према подацима Firebase-а.

Често постављана питања

Која је разлика између FCM-а и GCM-а?

FCM је еволуционо ажурирање GCM-а (Google Cloud Messaging). FCM нуди поједностављено подешавање преко Firebase Console, уграђену аналитику, теме и подршку за Web Push. GCM је званично угашен априла 2019. године, сви пројекти морају бити мигрирани на FCM.

Колико порука се може послати преко FCM бесплатно?

Firebase Cloud Messaging је бесплатан сервис без ограничења на број порука. Наплата се врши само за коришћење других Firebase сервиса, као што су Cloud Functions или Firestore. FCM не захтева Spark или Blaze претплату за основно слање обавештења.

Зашто се FCM токен може променити?

FCM токен се мења при: обнављању апликације из резервне копије, чишћењу података апликације, поновној инсталацији, ажурирању на нову верзију са променом Sender ID-ја. Увек обрађујте onNewToken у FirebaseMessagingService за слање новог токена на сервер.

Да ли FCM ради у Кини?

Google FCM је блокиран на територији Кине. За испоруку обавештења у Кини користе се алтернативни сервиси: Huawei Push Kit, MiPush (Xiaomi), Oppo Push, Vivo Push. За међуплатформску испоруку примењују се мулти-провајдерски сервиси попут Getui-ја.

Како проверити да је FCM правилно подешен?

Користите уграђену Firebase конзолу: изаберите „Cloud Messaging” — „Send Test Message”. Унесите тестни токен и пошаљите notification поруку. На уређају би требало да се појави обавештење. Такође можете пратити FirebaseMessagingService.onMessageReceived дневнике.

Резиме

  • FCM — међуплатформски облачни сервис Google-а за испоруку push обавештења и података
  • Токен — јединствени идентификатор уређаја који се користи за циљно слање порука
  • Notification — тип поруке са аутоматским приказом од стране система у позадинском режиму
  • Data — тип поруке са комплетним корисним теретом који се обрађује само у апликацији
  • Теме — механизам групне доставе претплатом на теме без чувања токена на серверу
  • APNS пролаз — за iOS, FCM делује као посредник, прослеђујући поруке преко APNS-а
  • Бесплатно — FCM не наплаћује број послатих порука

Развићемо мобилну апликацију под кључ

IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.

Разговарајте о пројекту

Прочитајте такође