FCM — এটি কী, ডেভেলপমেন্টে Firebase Cloud Messaging-এর নীতিমালা

লেখক: IT Sectr প্রকাশিত: 2026-03-19 পড়ার সময়: 8 মিনিট

FCM (Firebase Cloud Messaging) হল Google-এর একটি ক্রস-প্ল্যাটফর্ম পরিষেবা যা পুশ নোটিফিকেশন সরবরাহ এবং সার্ভার ও মোবাইল অ্যাপ্লিকেশনের মধ্যে ডেটা স্থানান্তরের জন্য। এটি একটি একক API-এর মাধ্যমে Android, iOS এবং ওয়েব প্ল্যাটফর্ম সমর্থন করে। Firebase ডকুমেন্টেশন অনুযায়ী, FCM সারা বিশ্বে প্রতিদিন 1 বিলিয়নেরও বেশি বার্তা প্রক্রিয়া করে।

মূল বিষয়

  • FCM হল পুশ নোটিফিকেশন এবং ডেটা পাঠানোর জন্য Google-এর একটি ক্রস-প্ল্যাটফর্ম পরিষেবা
  • স্থাপত্য — ক্লায়েন্ট একটি রেজিস্ট্রেশন টোকেন পায়, সার্ভার Firebase Connection Server-এর মাধ্যমে বার্তা পাঠায়
  • বার্তার ধরন — notification (স্বয়ংক্রিয় প্রদর্শন) এবং data (অ্যাপে সম্পূর্ণ প্রক্রিয়াকরণ)
  • বিতরণ — FCM গ্যারান্টিযুক্ত বিতরণের জন্য স্থায়ী সংযোগ বা অগ্রাধিকার সারি ব্যবহার করে
  • সংহতকরণ — Firebase SDK-এর মাধ্যমে সেটআপ, google-services.json কনফিগারেশন এবং সার্ভার কনফিগারেশন

FCM কী?

Firebase Cloud Messaging (FCM) হল Google-এর একটি ক্লাউড পরিষেবা যা মোবাইল ডিভাইসে পুশ নোটিফিকেশন এবং ডেটা বার্তার নির্ভরযোগ্য বিতরণ নিশ্চিত করে। পূর্বে Google Cloud Messaging (GCM) নামে পরিচিত, FCM Firebase ইকোসিস্টেমে ক্রস-প্ল্যাটফর্ম নোটিফিকেশনের জন্য প্রাথমিক টুল হয়ে উঠেছে।

FCM স্বয়ংক্রিয়ভাবে প্ল্যাটফর্মের উপর ভিত্তি করে সর্বোত্তম বিতরণ চ্যানেল নির্বাচন করে: Android-এ এটি নিজস্ব FCM সংযোগ ব্যবহার করে; iOS-এ এটি APNS (FCM গেটওয়ের মাধ্যমে) ব্যবহার করে। ডেভেলপারকে দুটি পৃথক সংহতকরণ বাস্তবায়নের প্রয়োজন নেই — FCM রাউটিং পরিচালনা করে।

পরিষেবাটি বার্তা পাঠানোর জন্য একটি ইউনিফায়েড REST API এবং Admin SDK প্রদান করে। এটি একটি নির্দিষ্ট প্রাপক প্ল্যাটফর্মের সাথে আবদ্ধ না হয়ে সার্ভার সাইড থেকে নোটিফিকেশন পাঠানোর অনুমতি দেয়।

FCM-এর মূল সক্ষমতা

FCM একাধিক বিতরণ মোড সমর্থন করে: একটি নির্দিষ্ট ডিভাইসে একক বার্তা, বিষয় অনুসারে গ্রুপ সম্প্রচার, এবং শর্ত অনুসারে বিভাগীয় পাঠানো। নির্ধারিত পাঠানো এবং নোটিফিকেশন বিষয়বস্তুর A/B পরীক্ষাও উপলব্ধ।

Firebase Cloud Messaging কীভাবে কাজ করে?

FCM স্থাপত্য তিনটি উপাদানের উপর ভিত্তি করে: ক্লায়েন্ট অ্যাপ্লিকেশন, Firebase Connection Server এবং অ্যাপ সার্ভার। ক্লায়েন্ট শুরুতে FCM-এ নিবন্ধন করে এবং একটি অনন্য রেজিস্ট্রেশন টোকেন পায় — একটি স্ট্রিং যা প্রদত্ত অ্যাপ্লিকেশনের জন্য ডিভাইস চিহ্নিত করে।

অ্যাপ সার্ভার FCM REST API-তে একটি অনুরোধ পাঠায়, প্রাপক টোকেন বা বিষয় উল্লেখ করে। Firebase Connection Server স্থায়ী XMPP সংযোগ বা HTTP অনুরোধ ব্যবহার করে বার্তা বিতরণ করে। যদি ডিভাইস অফলাইন থাকে, বার্তাটি সারিবদ্ধ হয় এবং সংযোগ পুনরুদ্ধার হলে বিতরণ করা হয়।

FCM অগ্রাধিকার সারি এবং স্বীকারোক্তি প্রক্রিয়া ব্যবহার করে বিতরণের গ্যারান্টি দেয়। Android-এ, বার্তাটি সারিতে 28 দিন পর্যন্ত সংরক্ষিত থাকে; iOS-এ, 4 সপ্তাহ পর্যন্ত (APNS-এর মাধ্যমে)। মেয়াদ শেষ হওয়ার পরে, বার্তাটি নোটিফিকেশন ছাড়াই মুছে ফেলা হয়।

FCM টোকেন জীবনচক্র

রেজিস্ট্রেশন টোকেন বিভিন্ন ক্ষেত্রে পরিবর্তিত হতে পারে: অ্যাপ ডেটা পুনরুদ্ধার করার সময়, নতুন সংস্করণে আপডেট করার সময়, বা ক্যাশে সাফ করার সময়। টোকেন আপডেট পরিচালনা এবং সার্ভারের সাথে সিঙ্ক্রোনাইজ করার জন্য অ্যাপটিকে FirebaseMessagingService.onNewToken প্রয়োগ করতে হবে।

FCM বার্তার প্রকার

FCM দুই ধরনের পেলোড সমর্থন করে: notification এবং data। প্রতিটি প্রকার নির্ধারণ করে যে প্রাপক ডিভাইসে বার্তাটি কীভাবে এবং কখন প্রক্রিয়া করা হয়।

প্যারামিটারNotificationData
স্বয়ংক্রিয় প্রদর্শনহ্যাঁ, অ্যাপ ব্যাকগ্রাউন্ডে থাকলেনা, শুধুমাত্র অ্যাপে
প্রক্রিয়াকরণসিস্টেম/NOS — ব্যাকগ্রাউন্ডে; অ্যাপ — ফোরগ্রাউন্ডেসর্বদা অ্যাপে (onMessageReceived)
সর্বোচ্চ আকার4 KB4 KB
কাস্টম কীপূর্বনির্ধারিত ক্ষেত্রের মধ্যে সীমাবদ্ধযেকোনো কী-মান জোড়া
CollapseKey প্রয়োজনঐচ্ছিকগ্রুপ করার জন্য ঐচ্ছিক

অভ্যাসে, সুপারিশ করা হয় data বার্তা ব্যবহার করার জন্য যখন অ্যাপের onMessageReceived-এ সম্পূর্ণ নোটিফিকেশন প্রক্রিয়াকরণের প্রয়োজন হয়। Notification বার্তা সাধারণ পরিস্থিতির জন্য উপযুক্ত যেখানে সিস্টেম প্রদর্শন যথেষ্ট।

FCM এবং APNS: পদ্ধতির তুলনা

FCM এবং APNS হল দুটি প্রধান পুশ বিতরণ পরিষেবা। FCM একটি ক্রস-প্ল্যাটফর্ম গেটওয়ে হিসাবে কাজ করে, যখন APNS শুধুমাত্র Apple ইকোসিস্টেমের জন্য। তাদের মূল পার্থক্যগুলি স্থাপত্য, সার্টিফিকেট প্রয়োজনীয়তা এবং রাউটিং প্রক্রিয়ায় রয়েছে।

  • ক্রস-প্ল্যাটফর্ম — FCM Android, iOS, Web সমর্থন করে; APNS শুধুমাত্র iOS, macOS, watchOS, tvOS
  • প্রমাণীকরণ — FCM Server Key বা OAuth 2.0 ব্যবহার করে; APNS সার্টিফিকেট বা Token-based (p8 কী) ব্যবহার করে
  • বার্তা অগ্রাধিকার — FCM-এ normal/high আছে; APNS-এ immediate/power-efficient consideration আছে
  • বিষয় — FCM বক্সের বাইরে বিষয়গুলিতে সাবস্ক্রিপশন সমর্থন করে; APNS-এর সার্ভার লজিক প্রয়োজন

FCM এবং সরাসরি APNS-এর মধ্যে পছন্দ প্রকল্প স্থাপত্যের উপর নির্ভর করে। ক্রস-প্ল্যাটফর্ম অ্যাপ্লিকেশনের জন্য, FCM সর্বোত্তম পছন্দ। শুধুমাত্র iOS প্রকল্পের জন্য, HTTP/2 API-এর মাধ্যমে APNS-এর সাথে সরাসরি কাজ গ্রহণযোগ্য।

সরাসরি APNS-এর পরিবর্তে FCM কখন বেছে নেবেন

FCM ন্যায্য যখন প্রকল্প একই সাথে Android এবং iOS উভয়ই ব্যবহার করে, সেইসাথে যখন Firebase analytics, নোটিফিকেশনের A/B পরীক্ষা, বা সার্ভার লজিক ছাড়া বিষয়ের প্রয়োজন হয়। সরাসরি APBS ন্যূনতম নির্ভরতা এবং কঠোর বিতরণ বিলম্ব প্রয়োজনীয়তা সহ শুধুমাত্র iOS অ্যাপ্লিকেশনের জন্য পছন্দনীয়।

Android-এ FCM সংহতকরণ

Android অ্যাপ্লিকেশনে FCM সংযোগ করতে, আপনাকে 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 বার্তাগুলির একটি চ্যানেলের প্রয়োজন নেই — অ্যাপ নিজেই সিদ্ধান্ত নেয় কীভাবে এবং কখন নোটিফিকেশন দেখাতে হবে।

iOS-এ FCM সংহতকরণ

iOS-এ, FCM অ্যাপ সার্ভার এবং APNS-এর মধ্যে মধ্যস্থতাকারী হিসাবে কাজ করে। Firebase সার্ভার থেকে বার্তা গ্রহণ করে, এটি APNS ফর্ম্যাটে মোড়ায় এবং Apple গেটওয়ের মাধ্যমে পাঠায়। ডেভেলপারকে Firebase কনসোলে একটি APNS কী বা সার্টিফিকেট কনফিগার করতে হবে।

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-এর মাধ্যমে একটি অবস্থা কলব্যাকও উপলব্ধ। মূল মেট্রিক: নোটিফিকেশনের ইম্প্রেশন এবং ওপেন।

FCM সর্বোত্তম অনুশীলন

FCM-এর সাথে কাজ করার সময়, প্রতিটি পরিস্থিতির জন্য সঠিক বার্তার ধরন নির্বাচন করা গুরুত্বপূর্ণ। স্বয়ংক্রিয় প্রদর্শন সহ সাধারণ নোটিফিকেশনের জন্য, notification বার্তা ব্যবহার করুন। এমন ক্ষেত্রে যেখানে অ্যাপকে প্রদর্শনের আগে ডেটা প্রক্রিয়া করতে হবে, data বার্তা ব্যবহার করুন। মিশ্র ধরন (notification + data) শুধুমাত্র তখনই সুপারিশ করা হয় যখন ডেটা বিশ্লেষণের জন্য প্রয়োজন হয়, নোটিফিকেশন বিষয়বস্তু পরিবর্তনের জন্য নয়।

টোকেন কেন্দ্রীয়ভাবে পরিচালনা করুন। বর্তমান টোকেন ব্যবহারকারী এবং প্ল্যাটফর্মের সাথে লিঙ্কযুক্ত একটি টেবিলে সার্ভারে সংরক্ষণ করুন। একটি অপ্রচলিত টোকেন পরিষ্কারের প্রক্রিয়া প্রয়োগ করুন: NotRegistered বা InvalidRegistration ত্রুটির সম্মুখীন হলে, ডাটাবেস থেকে টোকেন মুছুন। টোকেন খুব কমই পরিবর্তিত হয়, তবে সেগুলি পরিষ্কার করা FCM সমর্থনের একটি বাধ্যতামূলক উপাদান।

বার্তা গ্রুপ করার জন্য কলাপস কী (collapseKey) ব্যবহার করুন। যদি আপনি একই ধরনের একাধিক নোটিফিকেশন পাঠান (যেমন, "মুদ্রার হার আপডেট"), একই collapseKey সেট করুন। FCM গ্রুপ থেকে শুধুমাত্র শেষ বার্তাটি বিতরণ করবে, যা ডিভাইসের লোড হ্রাস করে এবং ব্যবহারকারীকে নোটিফিকেশনের বন্যায় ডুবিয়ে দেওয়া এড়ায়।

Firebase Console এবং Cloud Functions-এর মাধ্যমে বিতরণ পর্যবেক্ষণ করুন। FCM বিশ্লেষণ পাঠানো, প্রাপ্ত এবং প্রদর্শিত নোটিফিকেশনের সংখ্যা দেখায়। যদি প্রদর্শনের হার 70% এর নিচে হয়, Android-এ চ্যানেল সেটিংস এবং iOS-এ অনুমতি সেটিংস পরীক্ষা করুন। কম বিতরণ প্রায়শই নিষ্ক্রিয় চ্যানেল বা নোটিফিকেশন নিষেধাজ্ঞার সাথে সম্পর্কিত। পঞ্চম: নোটিফিকেশন টেক্সট এবং পাঠানোর সময় অপ্টিমাইজ করতে Firebase A/B পরীক্ষা ব্যবহার করুন — এটি Firebase ডেটা অনুযায়ী খোলার হার 15–25% বাড়ায়।

প্রায়শই জিজ্ঞাসিত প্রশ্ন

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 সহ নতুন সংস্করণে আপডেট করা। নতুন টোকেন সার্ভারে পাঠানোর জন্য সর্বদা FirebaseMessagingService-এ onNewToken পরিচালনা করুন।

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-এর একটি ক্রস-প্ল্যাটফর্ম ক্লাউড পরিষেবা
  • টোকেন একটি অনন্য ডিভাইস শনাক্তকারী যা লক্ষ্যবস্তু বার্তা বিতরণের জন্য ব্যবহৃত হয়
  • Notification একটি বার্তার ধরন যা ব্যাকগ্রাউন্ড মোডে সিস্টেম দ্বারা স্বয়ংক্রিয়ভাবে প্রদর্শিত হয়
  • Data একটি বার্তার ধরন যা সম্পূর্ণ পেলোড সহ শুধুমাত্র অ্যাপের মধ্যে প্রক্রিয়া করা হয়
  • বিষয় সার্ভারে টোকেন সংরক্ষণ না করে বিষয়গুলিতে সাবস্ক্রিপশনের উপর ভিত্তি করে গ্রুপ সম্প্রচার প্রক্রিয়া
  • APNS গেটওয়ে — iOS-এর জন্য, FCM মধ্যস্থতাকারী হিসাবে কাজ করে, APNS-এর মাধ্যমে বার্তা ফরোয়ার্ড করে
  • বিনামূল্যে — FCM পাঠানো বার্তার সংখ্যার জন্য চার্জ নেয় না

আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব

IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।

প্রকল্প নিয়ে আলোচনা করুন

আরও পড়ুন