FCM की मदद से, क्लाइंट ऐप्लिकेशन को दो तरह के मैसेज भेजे जा सकते हैं:
- "डिस्प्ले मैसेज" की तरह दिखने वाले सूचना मैसेज, FCM SDK टूल से अपने-आप मैनेज होते हैं.
- डेटा मैसेज, जिन्हें क्लाइंट ऐप्लिकेशन मैनेज करता है.
सूचना मैसेज में, उपयोगकर्ता को दिखने वाली कुंजियों का पहले से तय सेट होता है. इनमें, डेटा पेलोड भी शामिल किया जा सकता है. हालांकि, यह ज़रूरी नहीं है. इसके उलट, डेटा मैसेज में सिर्फ़ उपयोगकर्ता की ओर से तय की गई, ज़रूरत के हिसाब से बनाई गई कुंजी-वैल्यू पेयर शामिल होती हैं. दोनों तरह के मैसेज के लिए, पेलोड का साइज़ 4096 बाइट से ज़्यादा नहीं होना चाहिए. हालांकि, Firebase कंसोल से मैसेज भेजने पर, 1,000 वर्णों की सीमा लागू होती है.
| इस्तेमाल करने का तरीका | मैसेज भेजने का तरीका | |
|---|---|---|
| सूचना मैसेज | FCM SDK टूल, असली उपयोगकर्ताओं के डिवाइसों पर मैसेज दिखाता है जब क्लाइंट ऐप्लिकेशन बैकग्राउंड में चल रहा होता है. इसके अलावा, अगर सूचना मिलने के दौरान ऐप्लिकेशन फ़ोरग्राउंड में चल रहा है, तो ऐप्लिकेशन का कोड, सूचना के दिखने के तरीके को तय करता है. |
|
| डेटा मैसेज | डेटा मैसेज को प्रोसेस करने की ज़िम्मेदारी क्लाइंट ऐप्लिकेशन की होती है. डेटा मैसेज में, सिर्फ़ ज़रूरत के हिसाब से बनाई गई कुंजी-वैल्यू पेयर होती हैं. इनमें, रिज़र्व किए गए कुंजी के नाम नहीं होते (नीचे देखें). | Cloud Functions या आपके ऐप्लिकेशन सर्वर जैसे भरोसेमंद एनवायरमेंट में,
Cloud Functions
Firebase Admin SDK या
HTTP v1 API का इस्तेमाल करें.
अनुरोध भेजने के लिए, data
कुंजी सेट करें.
|
सूचना मैसेज का इस्तेमाल तब किया जा सकता है, जब आपको FCM SDK टूल से सूचना को अपने-आप दिखाने की सुविधा चाहिए. ऐसा तब होता है, जब आपका ऐप्लिकेशन बैकग्राउंड में चल रहा हो. FCM डेटा पेलोड के साथ सूचना मैसेज भेज सकता है. हालांकि, यह ज़रूरी नहीं है. ऐसे मामलों में, FCM सूचना पेलोड दिखाता है. वहीं, क्लाइंट ऐप्लिकेशन, डेटा पेलोड को मैनेज करता है.
डेटा मैसेज का इस्तेमाल तब किया जा सकता है, जब आपको अपने क्लाइंट ऐप्लिकेशन कोड से मैसेज प्रोसेस करने हों.
सूचना मैसेज
आप Firebase कंसोल, Firebase Admin SDK या FCM HTTP v1 API का इस्तेमाल करके, सूचना मैसेज भेज सकते हैं. Firebase Firebase कंसोल, Analytics पर आधारित A/B टेस्टिंग की सुविधा देता है. इससे, सूचना मैसेज को बेहतर बनाया जा सकता है.
Firebase Admin SDK या FCM
HTTP v1 API का इस्तेमाल करके, सूचना मैसेज भेजने के लिए, notification कुंजी सेट करें. इसमें, सूचना मैसेज की पहले से तय कुंजी-वैल्यू
के विकल्प शामिल करें. आईएम ऐप्लिकेशन में, सूचना मैसेज को फ़ॉर्मैट करने के लिए, यहां दिया गया उदाहरण इस्तेमाल किया जा सकता है
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"notification":{
"title":"Portugal vs. Denmark",
"body":"great match!"
}
}
}
जब ऐप्लिकेशन बैकग्राउंड में चल रहा होता है, तब सूचना मैसेज, सूचना ट्रे में डिलीवर किए जाते हैं. फ़ोरग्राउंड में चल रहे ऐप्लिकेशन के लिए, मैसेज को कॉलबैक फ़ंक्शन से मैनेज किया जाता है.
सूचना मैसेज बनाने के लिए, पहले से तय की गई कुंजियों की पूरी सूची देखने के लिए, FCM HTTP v1 API सूचना ऑब्जेक्ट रेफ़रंस का दस्तावेज़ देखें.
डेटा मैसेज
यह तय करना आपके ऊपर है कि आपको अपनी पसंद की एन्क्रिप्शन स्कीम लागू करने के लिए, FCM पेलोड data का इस्तेमाल कैसे करना है. पक्का करें कि आपने अपनी ज़रूरत के हिसाब से बनाई गई कुंजी-वैल्यू पेयर में, रिज़र्व किए गए शब्दों का इस्तेमाल न किया हो. रिज़र्व किए गए शब्दों में from, message_type या
google., gcm. या gcm.notification. से शुरू होने वाला कोई भी शब्द शामिल है.
यहां दिए गए उदाहरण में, टॉप-लेवल या सामान्य डेटा फ़ील्ड के इस्तेमाल के बारे में बताया गया है. इसे मैसेज पाने वाले सभी प्लैटफ़ॉर्म पर क्लाइंट इंटरप्रेट करते हैं. हर प्लैटफ़ॉर्म पर, क्लाइंट ऐप्लिकेशन को कॉलबैक फ़ंक्शन में डेटा पेलोड मिलता है
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"data":{
"Nick" : "Mario",
"body" : "great match!",
"Room" : "PortugalVSDenmark"
}
}
}
डेटा पेलोड के साथ सूचना मैसेज
प्रोग्राम के ज़रिए या Firebase कंसोल का इस्तेमाल करके, सूचना मैसेज भेजे जा सकते हैं. इनमें, ज़रूरत के हिसाब से बनाई गई कुंजी वैल्यू पेयर का पेलोड शामिल किया जा सकता है. हालांकि, यह ज़रूरी नहीं है. सूचनाएं कंपोज़र में, **बेहतर विकल्प** में मौजूद **कस्टम डेटा** फ़ील्ड का इस्तेमाल करें.
सूचना और डेटा, दोनों तरह के पेलोड वाले मैसेज मिलने पर, ऐप्लिकेशन का व्यवहार इस बात पर निर्भर करता है कि ऐप्लिकेशन बैकग्राउंड में है या फ़ोरग्राउंड में. इसका मतलब है कि मैसेज मिलने के समय, ऐप्लिकेशन चालू है या नहीं.
- बैकग्राउंड में होने पर, ऐप्लिकेशन को सूचना ट्रे में सूचना पेलोड मिलता है. साथ ही, उपयोगकर्ता के सूचना पर टैप करने पर ही, डेटा पेलोड मैनेज किया जाता है.
- फ़ोरग्राउंड में होने पर, आपके ऐप्लिकेशन को दोनों पेलोड के साथ एक मैसेज ऑब्जेक्ट मिलता है.
यहां JSON फ़ॉर्मैट में एक मैसेज दिया गया है. इसमें दोनों
notification कुंजी और data कुंजी शामिल हैं:
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"notification":{
"title":"Portugal vs. Denmark",
"body":"great match!"
},
"data" : {
"Nick" : "Mario",
"Room" : "PortugalVSDenmark"
}
}
}