FCM — bu nima, Firebase Cloud Messaging tamoyillari ishlanmada

Muallif: IT Sectr Nashr etilgan: 2026-03-19 O'qish vaqti: 8 daq

FCM (Firebase Cloud Messaging) — bu Google-ning push-bildirishnomalarini yetkazish va server bilan mobil ilovalar o'rtasida ma'lumotlarni uzatish uchun platformalararo xizmatidir. U yagona API orqali Android, iOS va veb-platformalarni qo'llab-quvvatlaydi. Firebase Documentation ma'lumotlariga ko'ra, FCM butun dunyo bo'ylab kuniga 1 milliarddan ortiq xabarlarni qayta ishlaydi.

Asosiy fikrlar

  • FCM — push-bildirishnomalari va ma'lumotlarni yuborish uchun Google-ning platformalararo xizmati
  • Arxitektura — mijoz ro'yxatdan o'tish tokenini oladi, server Firebase Connection Server orqali xabarlarni yuboradi
  • Xabar turlari — notification (avtomatik ko'rsatish) va data (ilovada to'liq qayta ishlash)
  • Yetkazish — FCM yetkazishni kafolatlash uchun doimiy ulanish yoki ustuvor navbatlardan foydalanadi
  • Integratsiya — Firebase SDK orqali ulanish, google-services.json sozlamasi va server konfiguratsiyasi

FCM nima?

Firebase Cloud Messaging (FCM) — bu Google-ning bulutli xizmati bo'lib, mobil qurilmalarga push-bildirishnomalari va ma'lumotli xabarlarning ishonchli yetkazilishini ta'minlaydi. Ilgari Google Cloud Messaging (GCM) nomi bilan tanilgan FCM, Firebase ekotizimida platformalararo bildirishnomalar uchun asosiy vositaga aylandi.

FCM platformaga qarab avtomatik ravishda optimal yetkazish kanalini tanlaydi: Androidda o'z FCM ulanishidan, iOSda esa APNS dan (FCM shlyuzi orqali) foydalanadi. Dasturchi ikki xil integratsiyani amalga oshirishi shart emas — FCM marshrutlashtirishni o'z zimmasiga oladi.

Xizmat xabarlarni yuborish uchun yagona REST API va Admin SDK ni taqdim etadi. Bu qabul qiluvchining muayyan platformasiga bog'lanmagan holda server qismidan bildirishnomalar yuborish imkonini beradi.

FCM ning asosiy imkoniyatlari

FCM bir nechta yetkazish rejimini qo'llab-quvvatlaydi: muayyan qurilmaga yagona xabar, mavzu bo'yicha (topic) guruhli yuborish va shartlar bo'yicha (condition) segmentli yuborish. Shuningdek, yuborishni rejalashtirish va bildirishnoma mazmunini A/B test qilish ham mavjud.

Firebase Cloud Messaging qanday ishlaydi?

FCM arxitekturasi uch komponentga asoslanadi: mijoz ilovasi, Firebase Connection Server va ilova serveri (app server). Mijoz ishga tushirilganda FCM da ro'yxatdan o'tadi va noyob ro'yxatdan o'tish tokeni ni oladi — bu ilova uchun qurilmani identifikatsiya qiluvchi satr.

Ilova serveri FCM REST API ga so'rov yuboradi, qabul qiluvchining tokeni yoki mavzusini ko'rsatadi. Firebase Connection Server doimiy XMPP ulanishi yoki HTTP so'rovidan foydalanib xabarni yetkazadi. Agar qurilma oflayn bo'lsa — xabar navbatga qo'yiladi va ulanish tiklanganda yetkaziladi.

FCM ustuvor navbatlar va qabulni tasdiqlash mexanizmi yordamida yetkazishni kafolatlaydi. Android da xabar navbatda 28 kungacha, iOS da esa 4 haftagacha (APNS orqali) saqlanadi. Muddati tugagach, xabar bildirishnomasiz o'chiriladi.

FCM tokenining hayot aylanishi

Ro'yxatdan o'tish tokeni bir necha hollarda o'zgarishi mumkin: ilova ma'lumotlarini tiklashda, yangi versiyaga yangilashda yoki keshni tozalashda. Ilova token yangilanishini va server bilan sinxronizatsiyani boshqarish uchun FirebaseMessagingService.onNewToken ni amalga oshirishi kerak.

FCM xabar turlari

FCM ikki turdagi yukni qo'llab-quvvatlaydi: notification va data. Har bir tur xabar qabul qiluvchi qurilmada qanday va qachon qayta ishlanishini aniqlaydi.

ParametrNotificationData
Avtomatik ko'rsatishHa, ilova fonda bo'lsaYo'q, faqat ilovada
Qayta ishlashTizim — fonda; ilova — oldingi plandaHar doim ilovada (onMessageReceived)
Maksimal hajm4 KB4 KB
Maxsus kalitlarOldindan belgilangan maydonlar bilan cheklanganHar qanday kalit-qiymat juftliklari
CollapseKey talab qiladiIxtiyoriyGuruhlash uchun ixtiyoriy

Amalda, agar ilova bildirishnomani onMessageReceived da to'liq qayta ishlashi kerak bo'lsa, data xabarlardan foydalanish tavsiya etiladi. Notification xabarlar tizimli ko'rsatish yetarli bo'lgan oddiy stsenariylar uchun mos keladi.

FCM va APNS: yondashuvlarni taqqoslash

FCM va APNS ikkita asosiy push yetkazish xizmatidir. FCM platformalararo shlyuz sifatida ishlaydi, APNS esa faqat Apple ekotizimi uchun. Ularning asosiy farqlari arxitekturada, sertifikat talablarida va marshrutlashtirish mexanizmlarida.

  • Platformalararo — FCM Android, iOS, Web ni qo'llab-quvvatlaydi; APNS faqat iOS, macOS, watchOS, tvOS
  • Autentifikatsiya — FCM Server Key yoki OAuth 2.0 dan foydalanadi; APNS — sertifikat yoki Token-based (p8 key)
  • Xabar ustuvorligi — FCM da normal/high bor; APNS da — immediate/power-efficient consideration
  • Mavzular — FCM qutidan tashqari mavzuga obuna bo'lishni qo'llab-quvvatlaydi; APNS server mantiqini talab qiladi

FCM va to'g'ridan-to'g'ri APNS o'rtasidagi tanlov loyiha arxitekturasiga bog'liq. Platformalararo ilovalar uchun FCM optimal tanlovdir. Faqat iOS loyihalari uchun HTTP/2 API orqali to'g'ridan-to'g'ri APNS bilan ishlash mumkin.

Qachon to'g'ridan-to'g'ri APNS o'rniga FCM ni tanlash kerak

FCM loyiha bir vaqtning o'zida Android va iOS dan foydalansa, shuningdek Firebase analitikasi, bildirishnomalarni A/B testi yoki server mantiqisiz mavzular kerak bo'lganda asoslanadi. To'g'ridan-to'g'ri APNS minimal bog'liqliklar va yetkazish kechikishiga qat'iy talablar bilan faqat iOS ilovalari uchun afzalroqdir.

FCM-ni Android-ga integratsiya qilish

FCM-ni Android ilovasiga ulash uchun Firebase SDK ni qo'shish va loyiha ildizida google-services.json ni sozlash kerak. Token ro'yxatdan o'tkazilgandan so'ng, ilova FirebaseMessagingService orqali xabarlarni qabul qilishga tayyor.

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

Sozlamadan so'ng, ilova birinchi ishga tushirilganda avtomatik ravishda FCM tokeni ni oladi. Token ushbu qurilmaga bildirishnomalarni keyingi yuborish uchun ilova serveriga yuborilishi kerak.

FCM bildirishnomalari uchun kanalni sozlash

Android 8+ da avtomatik ko'rsatish bilan FCM bildirishnomasini yuborishdan oldin NotificationChannel yaratish kerak. FCM notification xabarlari standart ID li kanaldan foydalanadi, lekin birinchi xabar qabul qilinganda FirebaseMessagingService orqali o'z kanalingizni yaratish tavsiya etiladi. Data xabarlari kanalni talab qilmaydi — ilova bildirishnomani qanday va qachon ko'rsatishni o'zi hal qiladi.

FCM-ni iOS-ga integratsiya qilish

iOS da FCM ilova serveri va APNS o'rtasida vositachi rolini o'ynaydi. Firebase serverdan xabarni oladi, uni APNS formatiga o'rab oladi va Apple shlyuzi orqali yuboradi. Dasturchi Firebase konsolida APNS kaliti yoki sertifikatini sozlashi kerak.

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 da ro'yxatdan o'tish asinxron tarzda amalga oshiriladi. FCM SDK avtomatik ravishda APNS tokenini oladi va uni Firebase serveriga uzatadi. didReceiveRegistrationToken yangi FCM tokeni olinganda ishga tushadi, bu token APNS tokenini loyiha identifikatori bilan birlashtiradi.

Yetkazish holatini tekshirish

FCM yetkazishni monitoring qilish uchun Firebase konsolini taqdim etadi: yuborilgan, qabul qilingan va ko'rsatilgan bildirishnomalar soni. Shuningdek, server tomonida yetkazish xatolarini kuzatish uchun Firebase Cloud Functions orqali holat qayta chaqiruvi mavjud. Asosiy ko'rsatkichlar: impressions (ko'rsatishlar) va opens (ochishlar).

FCM eng yaxshi amaliyotlari

FCM bilan ishlashda har bir stsenariy uchun to'g'ri xabar turini tanlash muhim. Avtomatik ko'rsatish bilan oddiy bildirishnomalar uchun notification xabarlardan foydalaning. Ilova ko'rsatishdan oldin ma'lumotlarni qayta ishlashi kerak bo'lgan hollarda — data xabarlari. Aralash tur (notification + data) faqat ma'lumotlar analitika uchun kerak bo'lsa tavsiya etiladi, bildirishnoma mazmunini o'zgartirish uchun emas.

Tokenlarni markazlashtirilgan holda boshqaring. Joriy tokenlarni serverda foydalanuvchi va platformaga bog'langan jadvalda saqlang. Eski tokenlarni tozalash mexanizmini amalga oshiring: NotRegistered yoki InvalidRegistration xatosi bo'lganda tokenni bazadan o'chiring. Tokenlar kamdan-kam o'zgaradi, lekin ularni tozalash FCM qo'llab-quvvatlashining majburiy elementidir.

Xabarlarni guruhlash uchun kollaps kalitlaridan (collapseKey) foydalaning. Agar bir xil turdagi bir nechta bildirishnoma yuborsangiz (masalan, „valyuta kursining yangilanishi”), bir xil collapseKey ni o'rnating. FCM guruhdan faqat oxirgi xabarni yetkazadi, bu qurilma yukini kamaytiradi va foydalanuvchini bildirishnomalar seli bilan bezovta qilmaydi.

Yetkazishni Firebase Console va Cloud Functions orqali kuzatib boring. FCM analitikasi yuborilgan, qabul qilingan va ko'rsatilgan bildirishnomalar sonini ko'rsatadi. Agar ko'rsatish foizi 70% dan past bo'lsa — Android da kanal sozlamalarini va iOS da ruxsatlarni tekshiring. Past yetkazish ko'pincha o'chirilgan kanallar yoki bildirishnomalarni taqiqlash bilan bog'liq. Beshinchisi: bildirishnoma matnini va yuborish vaqtini optimallashtirish uchun Firebase A/B testidan foydalaning — bu Firebase ma'lumotlariga ko'ra ochish konversiyasini 15–25% ga oshiradi.

Tez-tez beriladigan savollar

FCM va GCM o'rtasidagi farq nima?

FCM — bu GCM (Google Cloud Messaging) ning evolyutsion yangilanishi. FCM Firebase Console orqali soddalashtirilgan sozlash, o'rnatilgan analitika, mavzular va Web Push qo'llab-quvvatlashni taklif etadi. GCM 2019 yil aprelidan rasman o'chirilgan, barcha loyihalar FCM ga migratsiya qilinishi kerak.

FCM orqali qancha xabarni bepul yuborish mumkin?

Firebase Cloud Messaging — xabarlar sonida cheklovlarsiz bepul xizmat. To'lov faqat Cloud Functions yoki Firestore kabi boshqa Firebase xizmatlaridan foydalanish uchun olinadi. FCM asosiy bildirishnoma yuborish uchun Spark yoki Blaze obunasini talab qilmaydi.

Nega FCM tokeni o'zgarishi mumkin?

FCM tokeni quyidagi hollarda o'zgaradi: ilovani zaxiradan tiklashda, ilova ma'lumotlarini tozalashda, qayta o'rnatishda, Sender ID o'zgarishi bilan yangi versiyaga yangilashda. Serverga yangi tokenni yuborish uchun FirebaseMessagingService da har doim onNewToken ni qayta ishlang.

FCM Xitoyda ishlaydimi?

Google FCM Xitoy hududida bloklangan. Xitoyda bildirishnomalarni yetkazish uchun muqobil xizmatlardan foydalaniladi: Huawei Push Kit, MiPush (Xiaomi), Oppo Push, Vivo Push. Platformalararo yetkazish uchun Getui kabi ko'p provayderli xizmatlar qo'llaniladi.

FCM to'g'ri sozlanganligini qanday tekshirish mumkin?

O'rnatilgan Firebase konsolidan foydalaning: „Cloud Messaging” — „Send Test Message” ni tanlang. Test tokenini kiriting va notification xabar yuboring. Qurilmada bildirishnoma paydo bo'lishi kerak. Shuningdek, FirebaseMessagingService.onMessageReceived jurnallarini kuzatishingiz mumkin.

Xulosa

  • FCM — push-bildirishnomalari va ma'lumotlarni yetkazish uchun Google-ning platformalararo bulutli xizmati
  • Token — xabarlarni maqsadli yuborish uchun foydalaniladigan noyob qurilma identifikatori
  • Notification — fon rejimida tizim tomonidan avtomatik ko'rsatish bilan xabar turi
  • Data — faqat ilovada qayta ishlanadigan to'liq yukli xabar turi
  • Mavzular — serverda tokenlarni saqlamasdan mavzularga obuna bo'lish orqali guruhli yuborish mexanizmi
  • APNS shlyuzi — iOS uchun FCM vositachi sifatida, xabarlarni APNS orqali uzatadi
  • Bepul — FCM yuborilgan xabarlar soni uchun to'lov talab qilmaydi

Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz

IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.

Loyihani muhokama qilish

Shuningdek o'qing