FCM — bu nədir, Firebase Cloud Messaging prinsipləri inkişafda

Müəllif: IT Sectr Dərc olunub: 2026-03-19 Oxuma vaxtı: 8 dəq

FCM (Firebase Cloud Messaging) Google tərəfindən push bildirişləri çatdırmaq və serverlə mobil tətbiqlər arasında məlumat ötürmək üçün platformalararası xidmətdir. O, vahid API vasitəsilə Android, iOS və veb platformalarını dəstəkləyir. Firebase Documentation məlumatına görə, FCM bütün dünyada gündə 1 milyarddan çox mesaj emal edir.

Əsas məqamlar

  • FCM — push bildirişləri və məlumat göndərmək üçün Google-ın platformalararası xidməti
  • Arxitektura — müştəri qeydiyyat tokeni alır, server Firebase Connection Server vasitəsilə mesajlar göndərir
  • Mesaj növləri — notification (avtomatik göstərmə) və data (tətbiqdə tam emal)
  • Çatdırılma — FCM çatdırılma zəmanəti üçün daimi əlaqə və ya prioritet növbələrdən istifadə edir
  • İnteqrasiya — Firebase SDK vasitəsilə qoşulma, google-services.json konfiqurasiyası və server konfiqurasiyası

FCM nədir?

Firebase Cloud Messaging (FCM) Google-ın bulud xidmətidir ki, mobil cihazlara push bildirişləri və məlumat mesajlarının etibarlı çatdırılmasını təmin edir. Əvvəllər Google Cloud Messaging (GCM) kimi tanınan FCM, Firebase ekosistemində platformalararası bildirişlər üçün əsas vasitəyə çevrilib.

FCM platformadan asılı olaraq avtomatik olaraq optimal çatdırılma kanalını seçir: Android-də öz FCM əlaqəsindən, iOS-da isə APNS-dən (FCM şlüzü vasitəsilə) istifadə edir. Tərtibatçı iki fərqli inteqrasiya həyata keçirməli deyil — FCM marşrutlaşdırmanı öz üzərinə götürür.

Xidmət mesaj göndərmək üçün vahid REST API və Admin SDK təqdim edir. Bu, alıcının konkret platformasına bağlanmadan server hissəsindən bildirişlər göndərməyə imkan verir.

FCM-nin əsas imkanları

FCM bir neçə çatdırılma rejimini dəstəkləyir: konkret cihaza tək mesaj, mövzu üzrə (topic) qrup göndərmə və şərtlər üzrə (condition) seqment göndərmə. Həmçinin göndərmənin planlaşdırılması və bildiriş məzmununun A/B testi mövcuddur.

Firebase Cloud Messaging necə işləyir?

FCM arxitekturası üç komponentə əsaslanır: müştəri tətbiqi, Firebase Connection Server və tətbiq serveri (app server). Müştəri işə salındıqda FCM-də qeydiyyatdan keçir və unikal qeydiyyat tokeni alır — bu tətbiq üçün cihazı identifikasiya edən sətir.

Tətbiq serveri FCM REST API-nə sorğu göndərir, alıcının tokenini və ya mövzunu göstərir. Firebase Connection Server daimi XMPP əlaqəsi və ya HTTP sorğusundan istifadə edərək mesajı çatdırır. Cihaz oflayndırsa — mesaj növbəyə qoyulur və əlaqə bərpa edildikdə çatdırılır.

FCM prioritet növbələr və qəbul təsdiqi mexanizmi vasitəsilə çatdırılmaya zəmanət verir. Android-də mesaj növbədə 28 günə qədər, iOS-da isə 4 həftəyə qədər (APNS vasitəsilə) saxlanılır. Müddət bitdikdə mesaj bildirişsiz silinir.

FCM tokeninin həyat dövrü

Qeydiyyat tokeni bir neçə halda dəyişə bilər: tətbiq məlumatlarının bərpası zamanı, yeni versiyaya yenilənmə zamanı və ya keşin təmizlənməsi zamanı. Tətbiq tokenin yenilənməsini və serverlə sinxronizasiyanı idarə etmək üçün FirebaseMessagingService.onNewToken funksiyasını tətbiq etməlidir.

FCM mesaj növləri

FCM iki növ yük dəstəkləyir: notification və data. Hər növ mesajın alıcı cihazda necə və nə vaxt emal ediləcəyini müəyyən edir.

ParametrNotificationData
Avtomatik göstərməBəli, tətbiq fondadırsaXeyr, yalnız tətbiqdə
EmalSistem — fonda; tətbiq — ön plandaHəmişə tətbiqdə (onMessageReceived)
Maksimum ölçü4 KB4 KB
Xüsusi açarlarƏvvəlcədən təyin edilmiş sahələrlə məhdudİstənilən açar-dəyər cütləri
CollapseKey tələb edirİstəyə bağlıQruplaşdırma üçün istəyə bağlı

Praktikada, tətbiq bildirişi onMessageReceived-də tam emal etməlidirsə, data-mesajlardan istifadə etmək tövsiyyə olunur. Notification-mesajlar sistem göstərməsinin kifayət etdiyi sadə ssenarilər üçün uyğundur.

FCM və APNS: yanaşmaların müqayisəsi

FCM və APNS iki əsas push çatdırılma xidmətidir. FCM platformalararası şlüz kimi işləyir, APNS isə yalnız Apple ekosistemi üçündür. Onların əsas fərqləri arxitekturada, sertifikat tələblərində və marşrutlaşdırma mexanizmlərindədir.

  • Platformalararası — FCM Android, iOS, Web dəstəkləyir; APNS yalnız iOS, macOS, watchOS, tvOS
  • Doğrulama — FCM Server Key və ya OAuth 2.0 istifadə edir; APNS — sertifikat və ya Token-based (p8 key)
  • Mesaj prioriteti — FCM-də normal/high var; APNS-də — immediate/power-efficient consideration
  • Mövzular — FCM qutudan kənar mövzu abunəliyini dəstəkləyir; APNS server məntiqi tələb edir

FCM və birbaşa APNS arasında seçim layihənin arxitekturasından asılıdır. Platformalararası tətbiqlər üçün FCM optimal seçimdir. Yalnız iOS layihələri üçün HTTP/2 API vasitəsilə birbaşa APNS ilə işləmək mümkündür.

Nə vaxt birbaşa APNS əvəzinə FCM seçməli

FCM layihə eyni anda Android və iOS istifadə etdikdə, həmçinin Firebase analitikası, bildirişlərin A/B testi və ya server məntiqi olmadan mövzular lazım olduqda əsaslandırılır. Birbaşa APNS minimal asılılıqları və çatdırılma gecikməsi üçün ciddi tələbləri olan yalnız iOS tətbiqləri üçün üstünlük təşkil edir.

FCM-nin Android-də inteqrasiyası

FCM-ni Android tətbiqinə qoşmaq üçün Firebase SDK əlavə etmək və layihənin kökündə google-services.json-u konfiqurasiya etmək lazımdır. Token qeydiyyatından sonra tətbiq FirebaseMessagingService vasitəsilə mesajları qəbul etməyə hazırdır.

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

Konfiqurasiyadan sonra tətbiq ilk işə salındıqda avtomatik olaraq FCM tokeni alır. Token bu cihaza bildirişlər göndərmək üçün tətbiq serverinə göndərilməlidir.

FCM bildirişləri üçün kanalın konfiqurasiyası

Android 8+-da avtomatik göstərmə ilə FCM bildirişi göndərməzdən əvvəl NotificationChannel yaradılmalıdır. FCM notification-mesajları standart ID-li kanaldan istifadə edir, lakin ilk mesaj qəbul edildikdə FirebaseMessagingService vasitəsilə öz kanalınızı yaratmaq tövsiyyə olunur. Data-mesajları kanal tələb etmir — tətbiq bildirişi necə və nə vaxt göstərəcəyinə özü qərar verir.

FCM-nin iOS-da inteqrasiyası

iOS-da FCM tətbiq serveri ilə APNS arasında vasitəçi rolunu oynayır. Firebase serverdən mesaj alır, onu APNS formatına sarır və Apple şlüzü vasitəsilə göndərir. Tərtibatçı Firebase konsolunda APNS açarını və ya sertifikatını konfiqurasiya etməlidir.

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-da APNS-də qeydiyyat asinxron şəkildə baş verir. FCM SDK avtomatik olaraq APNS tokenini alır və onu Firebase serverinə ötürür. didReceiveRegistrationToken yeni FCM tokeni alındıqda işə düşür, bu token APNS tokenini layihə identifikatoru ilə birləşdirir.

Çatdırılma statusunun yoxlanılması

FCM çatdırılmanın monitorinqi üçün Firebase konsolu təqdim edir: göndərilən, qəbul edilən və göstərilən bildirişlərin sayı. Həmçinin server tərəfində çatdırılma xətalarını izləmək üçün Firebase Cloud Functions vasitəsilə status callback mövcuddur. Əsas metriklər: impressions (göstərmələr) və opens (açılmalar).

FCM ən yaxşı təcrübələri

FCM ilə işləyərkən hər ssenari üçün düzgün mesaj növünü seçmək vacibdir. Sadə bildirişlər üçün avtomatik göstərmə ilə notification-mesajlarından istifadə edin. Tətbiqin göstərmədən əvvəl məlumatları emal etməsi lazım olduğu hallar üçün — data-mesajları. Qarışıq tip (notification + data) yalnız məlumatlar analitika üçün lazımdırsa tövsiyyə olunur, bildiriş məzmununu dəyişdirmək üçün deyil.

Tokenləri mərkəzləşdirilmiş şəkildə idarə edin. Cari tokenləri serverdə istifadəçiyə və platformaya bağlı cədvəldə saxlayın. Köhnəlmiş tokenlərin təmizlənməsi mexanizmini tətbiq edin: NotRegistered və ya InvalidRegistration xətası zamanı tokeni bazadan silin. Tokenlər nadir hallarda dəyişir, lakin onların təmizlənməsi FCM dəstəyinin məcburi elementidir.

Mesajları qruplaşdırmaq üçün kollaps açarlarından (collapseKey) istifadə edin. Eyni tipli bir neçə bildiriş göndərirsinizsə (məsələn, „valyuta məzənnəsinin yenilənməsi”), eyni collapseKey-i təyin edin. FCM qrupdan yalnız son mesajı çatdıracaq, bu da cihaz yükünü azaldır və istifadəçini bildiriş seli ilə qıcıqlandırmır.

Çatdırılmanı Firebase Console və Cloud Functions vasitəsilə izləyin. FCM analitikası göndərilən, qəbul edilən və göstərilən bildirişlərin sayını göstərir. Göstərmə faizi 70%-dən aşağıdırsa — Android-də kanal parametrlərini və iOS-da icazələri yoxlayın. Aşağı çatdırılma tez-tez söndürülmüş kanallar və ya bildiriş qadağası ilə əlaqəlidir. Beşincisi: bildiriş mətnini və göndərmə vaxtını optimallaşdırmaq üçün Firebase A/B testindən istifadə edin — bu, Firebase məlumatlarına görə açılma konversiyasını 15–25% artırır.

Tez-tez verilən suallar

FCM və GCM arasında fərq nədir?

FCM GCM (Google Cloud Messaging)-in təkamül yeniləməsidir. FCM Firebase Console vasitəsilə sadələşdirilmiş konfiqurasiya, quraşdırılmış analitika, mövzular və Web Push dəstəyi təklif edir. GCM 2019-cu ilin aprelindən rəsmi olaraq söndürülüb, bütün layihələr FCM-yə miqrasiya edilməlidir.

FCM vasitəsilə nə qədər mesaj pulsuz göndərilə bilər?

Firebase Cloud Messaging mesajların sayında məhdudiyyət olmayan pulsuz xidmətdir. Ödəniş yalnız Cloud Functions və ya Firestore kimi digər Firebase xidmətlərindən istifadəyə görə alınır. FCM əsas bildiriş göndərilməsi üçün Spark və ya Blaze abunəsi tələb etmir.

FCM tokeni niyə dəyişə bilər?

FCM tokeni aşağıdakı hallarda dəyişir: tətbiqin ehtiyat nüsxədən bərpası, tətbiq məlumatlarının təmizlənməsi, yenidən quraşdırma, Sender ID dəyişikliyi ilə yeni versiyaya yenilənmə. Serverə yeni token göndərmək üçün FirebaseMessagingService-də həmişə onNewToken-u emal edin.

FCM Çində işləyir?

Google FCM Çin ərazisində bloklanıb. Çində bildiriş çatdırılması üçün alternativ xidmətlərdən istifadə olunur: Huawei Push Kit, MiPush (Xiaomi), Oppo Push, Vivo Push. Platformalararası çatdırılma üçün Getui kimi çoxprovayderli xidmətlər tətbiq edilir.

FCM-nin düzgün konfiqurasiya edildiyini necə yoxlamaq olar?

Quraşdırılmış Firebase konsolundan istifadə edin: „Cloud Messaging” — „Send Test Message” seçin. Test tokenini daxil edin və notification-mesaj göndərin. Cihazda bildiriş görünməlidir. Həmçinin FirebaseMessagingService.onMessageReceived jurnallarını izləyə bilərsiniz.

Xülasə

  • FCM — push bildirişləri və məlumatların çatdırılması üçün Google-ın platformalararası bulud xidməti
  • Token — mesajların hədəfli göndərilməsi üçün istifadə olunan unikal cihaz identifikatoru
  • Notification — fon rejimində sistem tərəfindən avtomatik göstərmə ilə mesaj növü
  • Data — yalnız tətbiqdə emal edilən tam yüklü mesaj növü
  • Mövzular — serverdə token saxlamadan mövzulara abunə ilə qrup göndərmə mexanizmi
  • APNS şlüzü — iOS üçün FCM vasitəçi rolunda, mesajları APNS vasitəsilə ötürür
  • Pulsuz — FCM göndərilən mesajların sayına görə ödəniş tələb etmir

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