Firebase Cloud Messaging (FCM) Google की एक क्रॉस-प्लेटफ़ॉर्म push सूचना और संदेश वितरण सेवा है, जो मोबाइल और वेब एप्लिकेशन के लिए डिज़ाइन की गई है। FCM सर्वर और क्लाइंट उपकरणों के बीच स्थायी नेटवर्क कनेक्शन बनाए रखने की आवश्यकता के बिना विश्वसनीय डेटा स्थानांतरण सुनिश्चित करता है। Firebase Documentation, 2026 के अनुसार, FCM बुनियादी ढांचे के माध्यम से दुनिया भर में प्रतिदिन 300 बिलियन से अधिक संदेश भेजे जाते हैं। सेवा स्वचालित प्रदर्शन वाली सूचनाओं और पृष्ठभूमि में डेटा स्थानांतरण के लिए data संदेशों दोनों का समर्थन करती है।
मुख्य बिंदु
Firebase Cloud Messaging Google की एक क्लाउड सेवा है जो एप्लिकेशन सर्वर और क्लाइंट उपकरणों के बीच push सूचनाओं और data संदेशों का वितरण सुनिश्चित करती है। इस सेवा ने पुराने Google Cloud Messaging (GCM) को बदल दिया और Firebase पारिस्थितिकी तंत्र में push वितरण के लिए मानक समाधान बन गई। FCM Android, iOS, Web और Unity का समर्थन करती है, जो लक्ष्य प्लेटफ़ॉर्म की परवाह किए बिना एकीकृत भेजने का इंटरफ़ेस प्रदान करती है।
सेवा संदेश वितरण के लिए कई तंत्र प्रदान करती है, जिनमें से प्रत्येक अपने कार्य को हल करता है। Notification संदेश प्राप्त होने पर सिस्टम द्वारा स्वचालित रूप से प्रदर्शित होते हैं — डेवलपर को सूचना दिखाने के लिए कोड लिखने की आवश्यकता नहीं है। Data संदेश कुंजी-मूल्य युग्मों के रूप में मनमाना payload स्थानांतरित करते हैं और एप्लिकेशन के अंदर संसाधित होते हैं। संयुक्त संदेशों में अधिकतम लचीलेपन के लिए दृश्य और छिपे हुए भाग होते हैं।
स्वयं का push सर्वर लागू करने के लिए प्रत्येक डिवाइस के साथ स्थायी TCP कनेक्शन बनाए रखना आवश्यक है, जो अकुशल और असुरक्षित है। FCM Google के एकीकृत बुनियादी ढांचे का उपयोग करती है जो एक साथ अरबों उपकरणों के साथ कनेक्शन बनाए रखता है। सेवा स्वचालित रूप से वितरण पुनः प्रयास, संदेश कतार और लोड संतुलन का प्रबंधन करती है, डेवलपर को इन कार्यों को स्वयं हल करने की आवश्यकता से मुक्त करती है।
FCM आर्किटेक्चर में तीन प्रमुख घटक होते हैं: प्रदाता सर्वर (आपका backend), Firebase Cloud Messaging सर्वर और डिवाइस पर क्लाइंट एप्लिकेशन। जब सर्वर संदेश भेजता है, तो यह पहले FCM बुनियादी ढांचे में पहुँचता है, जो इसे लक्ष्य डिवाइस पर रूट करता है। यदि डिवाइस ऑफ़लाइन है, तो FCM संदेश को कतार में संग्रहीत करता है और कनेक्शन बहाल होने पर वितरित करता है।
पहले लॉन्च पर, एप्लिकेशन Firebase SDK को कॉल करता है, जो FCM सेवा में डिवाइस को पंजीकृत करता है और एक अद्वितीय Registration Token प्राप्त करता है। यह टोकन लगभग 150 वर्णों की एक स्ट्रिंग है और एक विशिष्ट डिवाइस पर एप्लिकेशन के एक विशिष्ट इंस्टेंस की पहचान करता है। एप्लिकेशन को पुनः स्थापित करने, डेटा साफ़ करने या बैकअप से पुनर्स्थापित करने पर टोकन बदल सकता है — डेवलपर को onNewToken डेलिगेट के माध्यम से टोकन अपडेट को संभालना चाहिए।
जब सर्वर FCM API के माध्यम से अनुरोध भेजता है, तो संदेश कई चरणों से गुज़रता है। प्राप्ति और सत्यापन — FCM अनुरोध की वैधता और लक्ष्य डिवाइस की उपस्थिति की जाँच करता है। कतार — यदि डिवाइस उपलब्ध नहीं है, तो संदेश भंडारण कतार में प्रवेश करता है। रूटिंग — FCM इष्टतम वितरण चैनल (WiFi या मोबाइल डेटा) निर्धारित करता है। वितरण — सिस्टम संदेश को लक्ष्य एप्लिकेशन तक पहुँचाता है। सफल वितरण के बाद, FCM सर्वर को संदेश पहचानकर्ता लौटाता है।
Firebase Cloud Messaging तीन प्रकार के संदेशों का समर्थन करता है, जिनमें से प्रत्येक की क्लाइंट पक्ष पर अपनी प्रसंस्करण विशेषताएँ हैं। Notification संदेश Android में Google Play Services और iOS में APNs द्वारा संसाधित होते हैं और स्वचालित रूप से push बैनर के रूप में प्रदर्शित होते हैं। Data संदेश सीधे एप्लिकेशन को वितरित होते हैं और Android में onMessageReceived कॉलबैक और iOS में application(_:didReceiveRemoteNotification:) के माध्यम से संसाधित होते हैं।
Notification संदेश में पूर्वनिर्धारित फ़ील्ड होते हैं: title, body, इमेज URL और सूचना ध्वनि। सिस्टम स्वचालित रूप से सूचना बनाता और प्रदर्शित करता है, भले ही एप्लिकेशन पृष्ठभूमि में हो या बंद हो। उपयोगकर्ता शीर्षक और पाठ के साथ एक मानक बैनर देखता है, और टैप करने पर एप्लिकेशन payload में भेजे गए डेटा के साथ खुलता है। यदि एप्लिकेशन सक्रिय है, तो notification संदेश को इंटरसेप्ट किया जा सकता है और कोड में संसाधित किया जा सकता है।
Data संदेश बिना पूर्वनिर्धारित फ़ील्ड के कुंजी-मूल्य युग्मों का एक कस्टम सेट है। Payload सिस्टम द्वारा स्वचालित रूप से संसाधित नहीं होता — एप्लिकेशन कच्चा डेटा प्राप्त करता है और इसे मनमाने ढंग से व्याख्या कर सकता है। Data संदेशों का उपयोग पृष्ठभूमि में डेटा सिंक्रनाइज़ेशन, स्थानीय कैश अपडेट, सिंक ट्रिगर या सूचना प्रदर्शित किए बिना कमांड भेजने के लिए किया जाता है। Android में, data संदेश हमेशा वितरित होता है, भले ही एप्लिकेशन बंद हो या पृष्ठभूमि में हो।
FCM एक संदेश भेजने की अनुमति देता है जिसमें एक notification भाग (प्रदर्शन के लिए) और एक data भाग (प्रसंस्करण के लिए) दोनों होते हैं। संयुक्त payload में पूर्वनिर्धारित notification फ़ील्ड और मनमाना data कुंजियाँ दोनों शामिल होती हैं। सिस्टम notification भाग से सूचना प्रदर्शित करता है, जबकि data भाग खोलने पर एप्लिकेशन के intent extras में भेजा जाता है। यह उन परिदृश्यों के लिए सुविधाजनक है जहाँ आपको उपयोगकर्ता को सूचना दिखानी है और साथ ही किसी विशिष्ट स्क्रीन पर नेविगेट करने के लिए संदर्भ भेजना है।
| प्रकार | स्वचालित प्रदर्शन | पृष्ठभूमि प्रसंस्करण | उदाहरण |
|---|---|---|---|
| Notification | हाँ, सिस्टम द्वारा | स्वचालित, बिना कोड के | स्वागत push सूचना |
| Data | नहीं | एप्लिकेशन कॉलबैक के माध्यम से | पृष्ठभूमि में डेटा सिंक |
| संयुक्त | हाँ, notification भाग | खोलने पर data भाग | सूचना + ऑर्डर लिंक |
Android में FCM का एकीकरण एप्लिकेशन स्तर पर build.gradle फ़ाइल के माध्यम से Firebase SDK को जोड़ने से शुरू होता है। निर्भरताएँ और google-services.json फ़ाइल जोड़ने के बाद, एप्लिकेशन स्वचालित रूप से Registration Token प्राप्त करता है, जो FirebaseMessagingService कॉलबैक के माध्यम से भेजा जाता है। सूचनाएँ प्राप्त करने के लिए, FirebaseMessagingService को विस्तारित करने वाली एक सेवा बनाना और इसे AndroidManifest.xml में पंजीकृत करना आवश्यक है।
Firebase SDK कनेक्ट करने के बाद, डिवाइस टोकन बिना अतिरिक्त कोड के स्वचालित रूप से उत्पन्न होता है। टोकन उपलब्ध है FirebaseMessaging.getInstance().token के माध्यम से, जो Task<String> लौटाता है। टोकन अपडेट को ट्रैक करने के लिए, सेवा में onNewToken विधि को ओवरराइड किया जाता है। टोकन को प्रदाता सर्वर पर भेजा जाना चाहिए ताकि सर्वर इस डिवाइस पर push सूचनाएँ भेज सके।
class MyFirebaseMessagingService :
FirebaseMessagingService() {
override fun onNewToken(token: String) {
sendTokenToServer(token)
}
override fun onMessageReceived(
message: RemoteMessage
) {
val data = message.data
val title = "नया संदेश"
val body = data["body"] ?: ""
showNotification(title, body)
}
}
FCM संदेश प्राप्त करने के लिए सेवा को उपयुक्त intent-filter के साथ AndroidManifest.xml में पंजीकृत किया जाना चाहिए। INTERNET अनुमति और निर्दिष्ट क्रिया के साथ service टैग जोड़ें। सेवा पंजीकरण के बिना, संदेश पृष्ठभूमि में एप्लिकेशन को वितरित नहीं होंगे। Android 13+ में सूचनाएँ प्रदर्शित करने के लिए रनटाइम अनुमति POST_NOTIFICATIONS आवश्यक है।
<!-- 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 में FCM का एकीकरण Apple Push Notification Service (APNs) और Firebase Console दोनों पक्षों पर कॉन्फ़िगरेशन की आवश्यकता है। Android के विपरीत, जहाँ FCM सीधे कनेक्शन का प्रबंधन करता है, iOS में FCM परिवहन स्तर के रूप में APNs का उपयोग करता है। एप्लिकेशन UIApplication.shared.registerForRemoteNotifications के माध्यम से push सूचनाओं के लिए पंजीकरण करता है, और Firebase SDK प्राप्त डिवाइस टोकन को इंटरसेप्ट करता है और इसे FCM Registration Token से जोड़ता है।
iOS पर FCM के काम करने के लिए, Firebase Console में APNs कुंजी या प्रमाणपत्र अपलोड करना आवश्यक है। APNs कुंजी बिना प्रमाणपत्र के एक आधुनिक प्रमाणीकरण विधि है (Apple द्वारा अनुशंसित)। कुंजी Apple Developer Portal में Keys अनुभाग में बनाई जाती है और Firebase Console में Cloud Messaging सेटिंग्स में अपलोड की जाती है। APNs कॉन्फ़िगरेशन के बाद, एप्लिकेशन UNUserNotificationCenter के माध्यम से सूचना अनुमति का अनुरोध करता है और APNs के माध्यम से पंजीकरण करता है।
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
}
}
प्राप्त सूचनाओं को संभालने के लिए, UNUserNotificationCenter डेलिगेट लागू किया जाता है। willPresent विधि तब कॉल होती है जब एप्लिकेशन सक्रिय होने पर सूचना प्राप्त होती है — यहाँ आप कस्टम इन-ऐप सूचना दिखा सकते हैं या सिस्टम बैनर को अनदेखा कर सकते हैं। didReceive विधि तब कॉल होती है जब उपयोगकर्ता सूचना पर टैप करता है — यहाँ संबंधित स्क्रीन पर नेविगेशन किया जाता है। Data संदेशों के लिए MessagingDelegate का उपयोग किया जाता है, जो पृष्ठभूमि में FCM संदेश प्राप्त होने पर payload प्राप्त करता है।
सर्वर-साइड भेजना FCM संदेशों का Firebase Cloud Messaging के HTTP v1 API या पुराने Firebase Cloud Messaging API के माध्यम से किया जाता है। HTTP v1 API अनुशंसित विधि है, यह Service Account के माध्यम से OAuth 2.0 प्रमाणीकरण का उपयोग करता है और वितरण विश्लेषण और सूचनाओं के A/B परीक्षण सहित सभी आधुनिक FCM क्षमताओं का समर्थन करता है। अनुरोध POST विधि द्वारा endpoint https://fcm.googleapis.com/v1/projects/{project_id}/messages:send पर भेजा जाता है।
अनुरोध निकाय में संदेश जानकारी के साथ एक JSON ऑब्जेक्ट होता है: target (टोकन, विषय या शर्त), notification (प्रदर्शन के लिए) और data (कस्टम payload)। प्रमाणीकरण Service Account JSON कुंजी के माध्यम से होता है जो सर्वर पर्यावरण चर में लोड की जाती है। एक्सेस टोकन google-auth-library के माध्यम से उत्पन्न होता है। Google स्वचालित प्रमाणीकरण प्रबंधन और पुनः प्रयास के लिए Firebase Admin SDK का उपयोग करने की अनुशंसा करता है।
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% छूट", body: "आज सभी सेवाओं पर" },
data: { screen: "promo", promoId: "324" },
android: { priority: "high" },
apns: { payload: { aps: { sound: "default" } } }
}
admin.messaging().send(message)
.then(response => {
console.log("सफलतापूर्वक भेजा गया:", response)
})
.catch(error => {
console.log("भेजने में त्रुटि:", error)
})
उपयोगकर्ताओं के समूह को सूचनाएँ भेजने के लिए, FCM विषय सदस्यता का समर्थन करता है। विषय (topic) एक नामित चैनल है जिसकी क्लाइंट एप्लिकेशन FirebaseMessaging.getInstance().subscribeToTopic() के माध्यम से सदस्यता लेता है। सर्वर किसी विषय पर संदेश भेज सकता है और यह सभी सदस्यता लेने वाले उपकरणों पर वितरित होगा। विषय समाचार फ़ीड, प्रचार सूचनाओं और ईवेंट-आधारित push के लिए उपयुक्त हैं। अधिक सटीक विभाजन के लिए, तार्किक ऑपरेटरों के साथ कई विषयों पर आधारित शर्तों का उपयोग किया जाता है।
अक्सर पूछे जाने वाले प्रश्न
FCM Android पर Google के अपने बुनियादी ढांचे के माध्यम से काम करता है, जबकि iOS में यह APNs को परिवहन प्रोटोकॉल के रूप में उपयोग करता है। FCM दोनों प्लेटफ़ॉर्म के लिए एकीकृत API, ऑफ़लाइन संदेशों का स्वचालित भंडारण और वितरण विश्लेषण प्रदान करता है, जो शुद्ध APNs में उपलब्ध नहीं है।
हाँ, Firebase Console में Cloud Messaging अनुभाग के माध्यम से चयनित उपकरणों, विषयों या दर्शक खंडों को मैन्युअल रूप से सूचनाएँ भेजी जा सकती हैं। यह सुविधा परीक्षण और एक बार के प्रेषण के लिए उपयुक्त है, लेकिन उत्पादन एप्लिकेशन के लिए सर्वर एकीकरण को प्रतिस्थापित नहीं करती है।
FirebaseMessagingService (Android) में onNewToken या MessagingDelegate (iOS) के माध्यम से टोकन अपडेट की सदस्यता लें। टोकन बदलने पर, नया टोकन सर्वर को भेजें और पुराना हटा दें। सर्वर को डेटाबेस अपडेट करना चाहिए और पुराने टोकन पर भेजने के प्रयास बंद करने चाहिए।
FCM संदेश को 28 दिनों तक कतार में संग्रहीत करता है और कनेक्शन बहाल होने पर वितरित करता है। Notification संदेशों के लिए, प्रत्येक कोलैप्स समूह के लिए केवल अंतिम संदेश कोलैप्स होता है। Data संदेश अलग से संग्रहीत होते हैं और बिना कोलैप्स के भेजने के क्रम में वितरित होते हैं।
FCM पूरी तरह से मुफ्त है बिना संदेशों की संख्या पर किसी सीमा के। FCM उपयोग पर न तो Spark योजना और न ही Blaze योजना के तहत शुल्क लिया जाता है। केवल payload आकार पर सीमाएँ हैं: notification संदेशों के लिए 4 KB तक और data संदेशों के लिए 2 KB तक।
सारांश
हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे
IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।
यह भी पढ़ें