firebase-cloud-messagingफायरबेस-क्लाउड-मैसेजिंग के साथ शुरुआत करना


टिप्पणियों

एक कुख्यात सामान्य प्रश्न "डिवाइस से डिवाइस पर सूचनाएं कैसे भेजें", दुख की बात यह है कि उत्तर: आप नहीं कर सकते। पुश सूचनाएँ भेजने के लिए FCM को ट्रिगर करना होगा। यह 3 अलग-अलग तरीकों से किया जा सकता है:

  1. सीधे फायरबेस वेब कंसोल में
  2. फायरबेस फंक्शंस श्रोता को सेट करना और फिर एफसीएम को ट्रिगर करना
  3. एक सर्वर एक अधिसूचना भेजने के लिए FCM से अनुरोध करता है

एक धक्का अधिसूचना एक सूचना पेलोड है जो एफसीएम से भेजा जाता है। 3 प्रकार के पुश नोटिफिकेशन हैं: notification , data , notification and data । इस जानकारी को JSON के रूप में दर्शाया जा सकता है:

  {
    "to" : "APA91bHun4MxP5egoKMwt2KZFBaFUH-1RYqx...",
    "notification" : {
      "body" : "great match!",
      "title" : "Portugal vs. Denmark",
      "icon" : "myicon"
    },
    "data" : {
      "Nick" : "Mario",
      "Room" : "PortugalVSDenmark"
    }
  }

उपरोक्त उदाहरण तीसरे प्रकार, notification और संयुक्त data के लिए है। यही एफसीएम को भेजने के लिए कहा जाएगा।

  1. कंसोल data साथ notification और notification भेज सकता है लेकिन कभी भी data नहीं
  2. फ़ंक्शंस और कोई भी सर्वर 3 प्रकार भेज सकते हैं

notification प्रकार का महत्व यह है कि प्राप्त आवेदनों को डिफ़ॉल्ट रूप से अन्य टीमों को सशक्त बनाने की अनुमति देता है, जैसे कि परियोजना में पुस्तकालय को जोड़ने के लिए आवश्यक बिना कोडिंग के वेब कंसोल का उपयोग करके विपणन वृद्धि को लागू करना।

कृपया पुश अधिसूचना, notification प्रकार और दृश्य अधिसूचना को भ्रमित न करें, यह एक एंड्रॉइड क्लास (आमतौर पर अधिसूचना.कॉम) के लिए अंतिम है।

पुश का व्यवहार प्रकार के अनुसार अलग है और यदि ऐप अग्रभूमि में या पृष्ठभूमि में है। अग्रभूमि का मतलब नहीं है, कम से कम या बंद।

  1. यदि एप्लिकेशन अग्रभूमि में नहीं है , तो अधिसूचना डिफ़ॉल्ट दृश्य notification को ट्रिगर करेगी, यह अधिसूचना मैनिफ़ेस्ट में अनुकूलित की जा सकती है, कृपया दस्तावेज़ देखें। यदि एप्लिकेशन अग्रभूमि में है, तो हमें onMessageReceived विधि के अंदर व्यवहार को अनुकूलित करना होगा।
  2. data प्रकार का व्यवहार हमेशा अनुकूलित होना चाहिए।
  3. यदि एप्लिकेशन अग्रभूमि में नहीं है, तो संयुक्त notification और data डिफ़ॉल्ट दृश्य सूचना को ट्रिगर करेगा और उपयोगकर्ता के क्लिक करने पर data पेलोड उपलब्ध होगा। चूंकि लांचर गतिविधि तब चालू हो जाती है जब दृश्य अधिसूचना पर क्लिक किया जाता है, तो आपको शाब्दिक रूप से getIntent().getStringExtra("yourKey"); डेटा प्राप्त करने के लिए उस गतिविधि में। यदि ऐप सक्रिय है (अग्रभूमि में), तो आपको onMessageReceived विधि के अंदर व्यवहार को अनुकूलित करना होगा और आपको तुरंत data पेलोड तक पहुंच प्राप्त होगी।

जानकारी पेलोड को प्राप्त करने के लिए आपको इसे onMessageReceived विधि के अंदर करना होगा, केवल उपलब्ध तर्क ही संदेश है:

  1. notification प्राप्त करने के लिए आपको remoteMessage.getNotification() प्राप्त करना है फिर आप शरीर या शीर्षक को अन्य विधियों से प्राप्त कर सकते हैं
  2. data प्राप्त करने के लिए आपको remoteMessage.getData().get("yourKey")

हर एक शून्य सत्यापन को जोड़ने के लिए एक अच्छा विचार है, उन्नत ऐप्स में कई प्रकार की सूचनाएं आएंगी। एक अच्छी रणनीति यह सत्यापित करने के लिए है कि प्रत्येक, notification और data शून्य नहीं हैं। परिणामी उपयोगी रणनीति हमेशा कुछ सूचनाओं को नियंत्रित करने के लिए data सूचनाओं में एक type कुंजी का उपयोग करना होगा।

फायरबेस वेब कंसोल से data भेजने के लिए, उन्नत विकल्प खोलने होंगे।

notification कुंजी सीमित हैं, और प्रलेखन में संकेत दिया गया है। किसी भी प्रकार के मान केवल स्ट्रिंग हो सकते हैं

अगर आपको फायरबेस में कोई दस्तावेज खोजने में समस्या है, तो कृपया पृष्ठ के नीचे जाएं और भाषा को "अंग्रेजी" में बदल दें, कुछ अन्य भाषाओं में दस्तावेज़ पतले हैं।

स्थापना या सेटअप

फायरबेस क्लाउड मैसेजिंग फायरबेस सेवा है जो पुश नोटिफिकेशन को संभालती है। आप इस सेवा को किसी भी ग्राहक में जोड़ सकते हैं: वेब, Android या IOS। प्रत्येक के लिए विशिष्ट कामकाज को प्रलेखन से पढ़ा जाना चाहिए।

किसी भी प्रकार की परियोजना में एफसीएम जोड़ने के लिए, हमेशा एक पुस्तकालय जोड़ रहा है

एंड्रॉइड के लिए विशेष समर्थन को ध्यान में रखते हुए इसके लिए कुछ लाइनें लेने के लिए योग्य है। एंड्रॉइड स्टूडियो का उपयोग करके एक नया प्रोजेक्ट बनाएं, मेनू में टूल / फायरबेस पर जाएं, यह फायरबेस सहायक को ट्रिगर करेगा। "क्लाउड मैसेजिंग" का चयन करें और एक और दो चरणों का पालन करें।

  1. यदि आपका प्रोजेक्ट पहले एक और फायरबेस सेवा जोड़ता है, तो चरण एक को पूर्ण के रूप में चिह्नित किया जाएगा, अन्यथा, आपको यह करना होगा। पहला कदम आपको फायरबेस में एक प्रोजेक्ट बनाने या एक नया बनाने की अनुमति देता है। यह चरण एक google-service.json फ़ाइल डाउनलोड करेगा जिसमें फायरबेस परियोजना से जुड़ने के लिए विन्यास है। यह फ़ाइल "ऐप" फ़ोल्डर के अंदर है।
  2. यह चरण Google सेवा लाइब्रेरी और फायरबेस लाइब्रेरी को ग्रेडेल में जोड़ता है, यह उन फ़ाइलों में कुछ अतिरिक्त कॉन्फ़िगरेशन भी करेगा।

यह एक परियोजना में एफसीएम को जोड़ने का आधार है। इस बिंदु से, क्लाइंट पहले से ही एफसीएम पुश नोटिफिकेशन प्राप्त करने में सक्षम है जिसमें "अधिसूचना" पेलोड होता है जब तक कि ऐप अग्रभूमि में नहीं है (टिप्पणी में अधिक विवरण)।

क्लाइंट में एफसीएम व्यवहार को और अधिक अनुकूलित करने के लिए हमें 2 सेवाओं को जोड़ने की आवश्यकता है, यह आधिकारिक साइट में अच्छी तरह से प्रलेखित है। फिर से हम Android के लिए कुछ विचार करेंगे:

  1. एक वर्ग बनाएँ जो FirebaseMessagingService विस्तार करता है और onMessageReceived विधि को ओवरराइड करता है
  2. एक वर्ग बनाएं जो FirebaseInstanceIdService विस्तार करता है और onTokenRefresh विधि को ओवरराइड करता है
  3. मेनिफेस्ट में दोनों वर्गों को पंजीकृत करें, कृपया application टैग </ आशय-फ़िल्टर> </ आशय-फ़िल्टर> के अंदर करें

आप केवल तर्क का उपयोग करके notification पेलोड और data पेलोड को onMessageReceived तरीके से प्राप्त कर सकते हैं। onTokenRefresh विधि को FCM टोकन FCM द्वारा असाइन किए जाने पर कहा जाता है। एक FCM टोकन ऐप इंस्टॉलेशन और डिवाइस के लिए एक अद्वितीय आईडी है और इसे सीधे पुश नोटिफिकेशन भेजने के लिए डिवाइस के पते के रूप में उपयोग किया जा सकता है।

अधिसूचना के प्रकार और संबंधित व्यवहार के बारे में अधिक जानकारी के लिए कृपया टिप्पणी पढ़ें।