FCM की मदद से, अपने क्लाइंट ऐप्लिकेशन को दो तरह के मैसेज भेजे जा सकते हैं:
- सूचना वाले मैसेज, "डिस्प्ले मैसेज" की तरह होते हैं. इन्हें FCM SDK टूल अपने-आप मैनेज करता है.
- डेटा मैसेज, जिन्हें क्लाइंट ऐप्लिकेशन मैनेज करता है.
सूचना वाले मैसेज में, उपयोगकर्ता को दिखने वाली कुंजियों का पहले से तय किया गया सेट होता है. साथ ही, इनमें डेटा पेलोड भी शामिल हो सकता है. इसके उलट, डेटा मैसेज में सिर्फ़ उपयोगकर्ता के तय किए गए कस्टम की-वैल्यू पेयर होते हैं. दोनों तरह के मैसेज के लिए, पेलोड का साइज़ ज़्यादा से ज़्यादा 4096 बाइट हो सकता है. हालांकि, Firebase कंसोल से मैसेज भेजते समय, पेलोड का साइज़ 1000 वर्णों से ज़्यादा नहीं होना चाहिए.
| किसी स्थिति का इस्तेमाल करना | भेजने का तरीका | |
|---|---|---|
| सूचना का मैसेज | FCM जब क्लाइंट ऐप्लिकेशन बैकग्राउंड में चल रहा होता है, तब एसडीके असली उपयोगकर्ता के डिवाइसों पर मैसेज दिखाता है. अगर सूचना मिलने के समय ऐप्लिकेशन फ़ोरग्राउंड में चल रहा है, तो ऐप्लिकेशन का कोड यह तय करता है कि सूचना कैसे दिखेगी. |
|
| डेटा मैसेज | डेटा मैसेज को प्रोसेस करने की ज़िम्मेदारी क्लाइंट ऐप्लिकेशन की होती है. डेटा मैसेज में सिर्फ़ कस्टम की-वैल्यू पेयर होते हैं. इनमें रिज़र्व किए गए कुंजी के नाम नहीं होते (नीचे देखें). |
Cloud Functions या अपने ऐप्लिकेशन सर्वर जैसे भरोसेमंद एनवायरमेंट में, Firebase Admin SDK या HTTP v1 API का इस्तेमाल करें.
अनुरोध भेजने के लिए, data
कुंजी सेट करें.
|
जब आपको FCM SDK टूल से यह काम करवाना हो कि आपका ऐप्लिकेशन बैकग्राउंड में चलने पर, सूचना अपने-आप दिखे, तब सूचना वाले मैसेज का इस्तेमाल किया जा सकता है. FCM सूचना वाला मैसेज भेज सकता है. इसमें डेटा पेलोड शामिल करना ज़रूरी नहीं है. ऐसे मामलों में, FCM सूचना पेलोड दिखाता है और क्लाइंट ऐप्लिकेशन, डेटा पेलोड को मैनेज करता है.
अगर आपको अपने क्लाइंट ऐप्लिकेशन कोड का इस्तेमाल करके मैसेज प्रोसेस करने हैं, तो डेटा मैसेज का इस्तेमाल किया जा सकता है.
सूचना वाले मैसेज
Firebase कंसोल, Firebase Admin SDK या FCM HTTP v1 एपीआई का इस्तेमाल करके, सूचना वाले मैसेज भेजे जा सकते हैं. Firebase कंसोल, आपको आंकड़ों पर आधारित 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"
}
}
}