Firebase Cloud Messaging के मैसेज टाइप

FCM की मदद से, अपने क्लाइंट ऐप्लिकेशन को दो तरह के मैसेज भेजे जा सकते हैं:

  • सूचना वाले मैसेज, "डिसप्ले मैसेज" की तरह होते हैं. इन्हें FCM SDK अपने-आप मैनेज करता है.
  • डेटा मैसेज, जिन्हें क्लाइंट ऐप्लिकेशन मैनेज करता है.

सूचना वाले मैसेज में, उपयोगकर्ता को दिखने वाली कुंजियों का पहले से तय किया गया सेट होता है. साथ ही, इनमें डेटा पेलोड भी शामिल हो सकता है. इसके उलट, डेटा मैसेज में सिर्फ़ उपयोगकर्ता के तय किए गए कस्टम की-वैल्यू पेयर होते हैं. दोनों तरह के मैसेज के लिए पेलोड का साइज़ ज़्यादा से ज़्यादा 4096 बाइट हो सकता है. हालांकि, Firebase कंसोल से मैसेज भेजते समय, पेलोड का साइज़ 1000 वर्णों से ज़्यादा नहीं होना चाहिए.

अलग-अलग चैनलों के लिए बजट तय करने की सुविधा का इस्तेमाल करना भेजने का तरीका
सूचना का मैसेज FCM जब क्लाइंट ऐप्लिकेशन बैकग्राउंड में चल रहा होता है, तब एसडीके असली उपयोगकर्ता के डिवाइसों पर मैसेज दिखाता है. अगर सूचना मिलने के दौरान ऐप्लिकेशन फ़ोरग्राउंड में चल रहा है, तो ऐप्लिकेशन का कोड यह तय करता है कि सूचना कैसे दिखेगी.
  1. Cloud Functions या अपने ऐप्लिकेशन सर्वर जैसे भरोसेमंद एनवायरमेंट में, Firebase Admin SDK या HTTP v1 API का इस्तेमाल करें. notification बटन सेट करें. इसमें डेटा पेलोड शामिल हो सकता है. हमेशा छोटा किया जा सकता है.

    डिस्प्ले सूचनाओं के कुछ उदाहरण देखें और अनुरोध पेलोड भेजें.

  2. सूचना कंपोज़र का इस्तेमाल करें: मैसेज का टेक्स्ट, टाइटल वगैरह डालें और भेजें. कस्टम डेटा देकर, डेटा पेलोड जोड़ने का विकल्प चुनें.
डेटा मैसेज डेटा मैसेज को प्रोसेस करने की ज़िम्मेदारी क्लाइंट ऐप्लिकेशन की होती है. डेटा मैसेज में सिर्फ़ कस्टम की-वैल्यू पेयर होते हैं. इनमें रिज़र्व किए गए की-वैल्यू पेयर के नाम नहीं होते (नीचे देखें). Cloud Functions या अपने ऐप्लिकेशन सर्वर जैसे भरोसेमंद एनवायरमेंट में, Firebase Admin SDK या HTTP v1 API का इस्तेमाल करें. अनुरोध भेजने के लिए, data कुंजी सेट करें.

सूचना वाले मैसेज का इस्तेमाल तब किया जा सकता है, जब आपको FCM SDK टूल को यह अनुमति देनी हो कि जब आपका ऐप्लिकेशन बैकग्राउंड में चल रहा हो, तब वह सूचना अपने-आप दिखाए. FCM, सूचना वाला मैसेज भेज सकता है. इसमें डेटा पेलोड शामिल करना ज़रूरी नहीं है. ऐसे मामलों में, FCM सूचना पेलोड दिखाता है और क्लाइंट ऐप्लिकेशन, डेटा पेलोड को मैनेज करता है.

डेटा मैसेज का इस्तेमाल तब किया जा सकता है, जब आपको अपने क्लाइंट ऐप्लिकेशन कोड से मैसेज प्रोसेस करने हों.

सूचना वाले मैसेज

नोटिफ़िकेशन मैसेज भेजने के लिए, Firebase कंसोल, Firebase Admin SDK या FCM HTTP v1 API का इस्तेमाल किया जा सकता है. 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"
    }
  }
}