Firebase Cloud Messaging: bu nədir, iş prinsipi və push bildirişləri

Müəllif: IT Sectr Dərc olunub: 2026-04-29 Oxuma vaxtı: 9 dəq

Firebase Cloud Messaging (FCM) — Google tərəfindən mobil və veb tətbiqlər üçün nəzərdə tutulmuş push bildirişləri və mesajların çatdırılması üçün platformalararası xidmətdir. FCM daimi şəbəkə əlaqəsi saxlamağa ehtiyac olmadan server və müştəri cihazları arasında etibarlı məlumat ötürülməsini təmin edir. Firebase Documentation, 2026 məlumatına görə, FCM infrastrukturu vasitəsilə gündəlik 300 milyarddan çox mesaj ötürülür. Xidmət həm avtomatik göstərilən bildirişləri, həm də fonda gizli məlumat ötürülməsi üçün data mesajlarını dəstəkləyir.

Əsas məqamlar

  • FCM — Google-dan vahid API və Firebase Console vasitəsilə Android, iOS və Web dəstəyi olan pulsuz push bildiriş xidmətidir.
  • Mesaj növləri — notification mesajları sistem tərəfindən avtomatik göstərilir, data mesajları isə ixtiyari JSON göndərməyə və onu tətbiqdə emal etməyə imkan verir.
  • Cihaz tokenləri — hər bir tətbiq unikal Registration Token alır, server bu tokendən ünvanlı push bildirişləri göndərmək üçün istifadə edir.
  • Çatdırılma prioritetləri — normal və high prioritetləri batareya qənaəti zamanı sistemin davranışını müəyyən edir: high mesajları cihazı Doze rejimindən oyadır.
  • Topiclər və qruplar — FCM kütləvi göndərişlər üçün topic abunəliyini və bir istifadəçinin bir neçə cihazına göndərmək üçün Device Groups-u dəstəkləyir.

Firebase Cloud Messaging nədir

Firebase Cloud Messaging — tətbiq serveri ilə müştəri cihazları arasında push bildirişləri və data mesajlarının ötürülməsini təmin edən Google-un bulud xidmətidir. Xidmət köhnəlmiş Google Cloud Messaging (GCM) əvəz etmiş və Firebase ekosistemində push çatdırılması üçün standart həll yolu olmuşdur. FCM Android, iOS, Web və Unity-ni dəstəkləyir, hədəf platformadan asılı olmayaraq vahid göndərmə interfeysi təmin edir.

FCM-nin əsas imkanları

Xidmət hər biri öz vəzifəsini həll edən bir neçə mesaj çatdırılma mexanizmi təqdim edir. Notification mesajları qəbul edildikdə sistem tərəfindən avtomatik göstərilir — tərtibatçı bildirişi göstərmək üçün kod yazmalı deyil. Data mesajları açar-dəyər cütləri şəklində ixtiyari payload ötürür və tətbiq daxilində emal olunur. Kombinə edilmiş mesajlar maksimum çeviklik üçün eyni anda həm görünən, həm də gizli hissələri ehtiva edir.

Öz həllinizlə müqayisədə üstünlüklər

Öz push serverinizi hazırlamaq hər bir cihazla daimi TCP əlaqəsi tələb edir ki, bu da səmərəsiz və təhlükəsiz deyil. FCM vahid Google infrastrukturundan istifadə edir, eyni anda milyardlarla cihazla əlaqə saxlayır. Xidmət avtomatik olaraq təkrar çatdırılma cəhdlərini, mesaj növbələrini və yük balanslamasını idarə edir, tərtibatçını bu vəzifələri öz başına həll etmək məcburiyyətindən azad edir.

Firebase Cloud Messaging necə işləyir

FCM arxitekturası üç əsas komponentdən ibarətdir: provayder serveri (sizin backend), Firebase Cloud Messaging serveri və cihazdakı müştəri tətbiqi. Server mesaj göndərdikdə, o əvvəlcə FCM infrastrukturuna daxil olur, o da onu hədəf cihaza yönləndirir. Cihaz oflayndırsa, FCM mesajı növbədə saxlayır və əlaqə bərpa edildikdə çatdırır.

Cihazın qeydiyyatı və tokenin alınması

İlk işə salındıqda tətbiq FCM xidmətində cihazı qeydiyyatdan keçirən və unikal Registration Token alan Firebase SDK-nı çağırır. Bu token təxminən 150 simvol uzunluğunda sətirdir və müəyyən bir cihazdakı tətbiqin konkret nümunəsini identifikasiya edir. Token tətbiq yenidən quraşdırıldıqda, məlumatlar təmizləndikdə və ya backup-dan bərpa edildikdə dəyişə bilər — tərtibatçı onNewToken delegatı vasitəsilə token yenilənməsini emal etməlidir.

Mesajın həyat dövrü

Server FCM API vasitəsilə sorğu göndərdikdə, mesaj bir neçə mərhələdən keçir. Qəbul və validasiya — FCM sorğunun düzgünlüyünü və hədəf cihazın mövcudluğunu yoxlayır. Növbə — cihaz əlçatmazdırsa, mesaj saxlama növbəsinə daxil olur. Yönləndirmə — FCM optimal çatdırılma kanalını (Wi-Fi və ya mobil məlumat) müəyyən edir. Çatdırılma — sistem mesajı hədəf tətbiqə ötürür. Uğurlu çatdırılmadan sonra FCM serverə mesaj identifikatorunu qaytarır.

FCM-də mesaj növləri

Firebase Cloud Messaging hər biri müştəri tərəfində öz emal xüsusiyyətlərinə malik üç növ mesajı dəstəkləyir. Notification mesajları Android-də Google Play Services və iOS-da APNs sistem xidməti tərəfindən emal edilir və avtomatik olaraq push bannerləri şəklində göstərilir. Data mesajları birbaşa tətbiqə ötürülür və Android-də onMessageReceived, iOS-da isə application(_:didReceiveRemoteNotification:) callback-i vasitəsilə emal olunur.

Notification mesajları

Notification mesajı əvvəlcədən müəyyən edilmiş sahələri ehtiva edir: title, body, şəkil URL-i və bildiriş səsi. Sistem avtomatik olaraq bildirişi sistem tepsisində yaradır və göstərir, hətta tətbiq fonda olsa və ya dayandırılsa belə. İstifadəçi başlıq və mətn ilə standart banner görür, kliklədikdə isə tətbiq payload-da ötürülən məlumatlarla açılır. Tətbiq aktiv olduqda, notification mesajı tutula və koddda emal edilə bilər.

Data mesajları

Data mesajı — əvvəlcədən müəyyən edilmiş sahələr olmayan fərdi açar-dəyər cütləri dəstidir. Payload sistem tərəfindən avtomatik emal edilmir — tətbiq xam məlumatları alır və onları istənilən şəkildə interpretasiya edə bilər. Data mesajları fonda məlumat sinxronizasiyası, lokal keşin yenilənməsi, sinxronizasiya triggeri və ya bildiriş göstərmədən əmrlərin ötürülməsi üçün istifadə olunur. Android-də data mesajı həmişə çatdırılır, hətta tətbiq dayandırılsa və ya fonda olsa belə.

Kombinə edilmiş mesajlar

FCM eyni anda həm notification hissəsi (göstərmək üçün), həm də data hissəsi (emal üçün) olan mesaj göndərməyə imkan verir. Kombinə edilmiş payload həm notification-un əvvəlcədən müəyyən edilmiş sahələrini, həm də data-nın ixtiyari açarlarını ehtiva edir. Sistem notification hissəsindən bildiriş göstərir, data hissəsi isə açılış zamanı tətbiqin intent extras-ına ötürülür. Bu, istifadəçiyə bildiriş göstərmək və eyni anda konkret ekrana keçid üçün kontekst ötürmək lazım olan ssenarilər üçün əlverişlidir.

NövAvto-göstərməFonda emalNümunə
NotificationBəli, sistem tərəfindənAvtomatik, kodsuzSalamlama push bildirişi
DataXeyrTətbiq callback-i iləFonda məlumat sinxronizasiyası
Kombinə edilmişBəli, notification hissəsiAçılışda data hissəsiBildiriş + sifariş linki

Android-də FCM qurulması

Android-də FCM inteqrasiyası tətbiq səviyyəsində build.gradle faylı vasitəsilə Firebase SDK-nın qoşulması ilə başlayır. Asılılıqlar və google-services.json faylı əlavə edildikdən sonra tətbiq avtomatik olaraq FirebaseMessagingService callback-i ilə ötürülən Registration Token alır. Bildirişləri qəbul etmək üçün FirebaseMessagingService-dən miras alan xidmət yaradılmalı və AndroidManifest.xml-də qeydiyyatdan keçirilməlidir.

İnisiallaşdırma və tokenin alınması

Firebase SDK qoşulduqdan sonra əlavə kod olmadan avtomatik olaraq cihaz tokeni yaradır. Token FirebaseMessaging.getInstance().token vasitəsilə əlçatandır, o Task qaytarır. Token yenilənmələrini izləmək üçün xidmətdə onNewToken metodu override edilir. Serverin bu cihaza push bildirişləri göndərə bilməsi üçün token provayder serverinə ötürülməlidir.

kotlin
class MyFirebaseMessagingService :
    FirebaseMessagingService() {

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

    override fun onMessageReceived(
        message: RemoteMessage
    ) {
        val data = message.data
        val title = "Yeni mesaj"
        val body = data["body"] ?: ""
        showNotification(title, body)
    }
}

Xidmətin manifestdə qeydiyyatı

FCM mesajlarını qəbul etmək üçün xidmət AndroidManifest.xml-də müvafiq intent-filter ilə qeydiyyatdan keçirilməlidir. INTERNET icazəsi və action göstərilməklə service teqinin əlavə edilməsi. Xidmət qeydiyyatdan keçirilməzsə, mesajlar fon rejimində tətbiqə çatdırılmayacaq. Android 13+-də bildirişləri göstərmək üçün runtime icazəsi POST_NOTIFICATIONS tələb olunur.

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>

iOS-da FCM qurulması

iOS-da FCM inteqrasiyası həm Apple Push Notification Service (APNs) tərəfində, həm də Firebase Console-da konfiqurasiya tələb edir. Android-dən fərqli olaraq, FCM iOS-da APNs-dən nəqliyyat qatı kimi istifadə edir. Tətbiq UIApplication.shared.registerForRemoteNotifications vasitəsilə push bildirişləri almaq üçün qeydiyyatdan keçir, Firebase SDK isə alınan device token-i ələ keçirir və onu FCM Registration Token ilə əlaqələndirir.

APNs konfiqurasiyası və bildirişlərə qeydiyyat

iOS-da FCM-nin işləməsi üçün Firebase Console-da APNs açarı və ya sertifikat yüklənməlidir. APNs açarı — sertifikatsız müasir autentifikasiya üsuludur (Apple tərəfindən tövsiyə olunur). Açar Apple Developer Portal-da Keys bölməsində yaradılır və Firebase Console-da Cloud Messaging parametrlərində yüklənir. APNs konfiqurasiyasından sonra tətbiq UNUserNotificationCenter vasitəsilə bildirişlərə icazə tələb edir və APNs vasitəsilə qeydiyyatdan keçir.

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

Daxil olan bildirişlərin emalı

Alınan bildirişləri emal etmək üçün UNUserNotificationCenter delegatı tətbiq edilir. willPresent metodu bildiriş aktiv tətbiq zamanı qəbul edildikdə çağırılır — burada fərdi in-app notifikasiya göstərilə bilər və ya sistem banneri buraxıla bilər. didReceive metodu istifadəçi bildirişi kliklədikdə çağırılır — burada müvafiq ekrana keçid edilir. Data mesajları üçün fonda FCM mesajı qəbul edildikdə payload alan MessagingDelegate delegatı istifadə olunur.

Serverdən mesaj göndərilməsi

Server göndərməsi FCM mesajları HTTP v1 API Firebase Cloud Messaging və ya köhnəlmiş Firebase Cloud Messaging API vasitəsilə həyata keçirilir. HTTP v1 API tövsiyə olunan üsuldur, Service Account vasitəsilə OAuth 2.0 autentifikasiyasından istifadə edir və çatdırılma analitikası və A/B bildiriş testləri daxil olmaqla bütün müasir FCM imkanlarını dəstəkləyir. Sorğu POST metodu ilə https://fcm.googleapis.com/v1/projects/{project_id}/messages:send endpoint-ə göndərilir.

HTTP v1 sorğu formatı

Sorğunun gövdəsi mesaj haqqında məlumatı olan JSON obyekti ehtiva edir: target (token, topic və ya şərt), notification (göstərmək üçün) və data (fərdi payload). Autentifikasiya Service Account JSON açarı vasitəsilə aparılır, o serverin ətraf dəyişənlərinə yüklənir. Giriş tokeni google-auth-library kitabxanası vasitəsilə yaradılır. Google autentifikasiya və təkrar cəhdlərin avtomatik idarə edilməsi üçün Firebase Admin SDK-dan istifadə etməyi tövsiyə edir.

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% endirim", body: "Bütün xidmətlərə bu gün" },
    data: { screen: "promo", promoId: "324" },
    android: { priority: "high" },
    apns: { payload: { aps: { sound: "default" } } }
}

admin.messaging().send(message)
    .then(response => {
        console.log("Uğurla göndərildi:", response)
    })
    .catch(error => {
        console.log("Göndərmə xətası:", error)
    })

Topiclər və kütləvi göndəriş

İstifadəçi qrupuna bildiriş göndərmək üçün FCM topic abunəliyini dəstəkləyir. Topic — müştəri tətbiqinin FirebaseMessaging.getInstance().subscribeToTopic() vasitəsilə abunə olduğu adlandırılmış kanaldır. Server topic-ə mesaj göndərə bilər və o, bütün abunə olunmuş cihazlara çatdırılacaq. Topiclər xəbər bülletenləri, promosyon bildirişləri və event push üçün uyğundur. Daha dəqiq seqmentasiya üçün məntiqi operatorlarla bir neçə topic əsasında şərtlər (conditions) istifadə olunur.

Tez-tez verilən suallar

FCM və APNs arasında nə fərq var?

FCM Android-də öz Google infrastrukturu vasitəsilə işləyir, iOS-da isə APNs-dən nəqliyyat protokolu kimi istifadə edir. FCM hər iki platforma üçün vahid API, avtomatik oflayn mesaj saxlama və çatdırılma analitikası təmin edir ki, bunlar təmiz APNs-də yoxdur.

FCM mesajlarını server olmadan göndərmək olar?

Bəli, Firebase Console-da Cloud Messaging bölməsində seçilmiş cihazlara, topiclərə və ya auditoriya seqmentlərinə əl ilə bildiriş göndərmək olar. Funksiya sınaq və birdəfəlik göndərişlər üçün uyğundur, lakin production tətbiqləri üçün server inteqrasiyasını əvəz etmir.

Cihaz tokeni dəyişibsə nə etməli?

onNewToken (Android-də FirebaseMessagingService) və ya MessagingDelegate (iOS-da) vasitəsilə token yenilənmələrinə abunə olun. Token dəyişdikdə yeni tokeni serverə göndərin və köhnəsini silin. Server məlumat bazasını yeniləməli və köhnəlmiş tokenə göndərmə cəhdlərini dayandırmalıdır.

FCM oflayn cihazları necə idarə edir?

FCM mesajı 28 günə qədər növbədə saxlayır və əlaqə bərpa edildikdə çatdırır. Notification mesajları üçün hər kollaps qrupu üçün yalnız son mesaj kollaps edilir. Data mesajları ayrıca saxlanılır və kollaps olmadan göndərilmə sırası ilə çatdırılır.

Firebase Cloud Messaging-in istifadəsi nə qədərdir?

FCM tamamilə pulsuzdur, mesaj sayında məhdudiyyət yoxdur. FCM-dən istifadə nə Spark planı, nə də Blaze planı çərçivəsində tarifləndirilmir. Məhdudiyyətlər yalnız payload ölçüsünə aiddir: notification mesajları üçün 4 KB-a qədər və data mesajları üçün 2 KB-a qədər.

Nəticə

  • Firebase Cloud Messaging — vahid API vasitəsilə Android, iOS, Web və Unity-ni dəstəkləyən Google-dan platformalararası push bildiriş xidmətidir.
  • FCM arxitekturası provayder serveri, Firebase infrastrukturu və müştəri tətbiqindən ibarətdir, Google-un qlobal şəbəkəsi vasitəsilə etibarlı mesaj çatdırılmasını təmin edir.
  • Üç növ mesaj — notification (avto-göstərmə), data (UI olmadan ixtiyari payload) və kombinə edilmiş (hər iki növ bir mesajda).
  • Android-də FCM öz əlaqəsi ilə FirebaseMessagingService vasitəsilə işləyir, iOS-da isə MessagingDelegate ilə token ələ keçirməklə APNs-dən nəqliyyat kimi istifadə edir.
  • HTTP v1 API Service Account vasitəsilə OAuth 2.0 autentifikasiyası və çatdırılma analitikası dəstəyi ilə server göndərməsi üçün tövsiyə olunur.
  • Topiclər abunəçi qruplarına mesaj göndərməyə imkan verir, şərtlər (conditions) isə dəqiq seqmentasiya üçün bir neçə topic-i birləşdirməyə imkan verir.
  • FCM pulsuzdur mesaj sayında məhdudiyyət olmadan, oflayn mesajların 28 gün saxlanması və maksimum payload ölçüsü 4 KB.

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun