android - सामग्री परिवर्तन पर सूचनाएं पुश करें



firebase android-notifications (1)

मान लें कि मेरे पास एक Android एप्लिकेशन है जो बस एक यादृच्छिक REST API से प्राप्त सामग्री के साथ एक सूची दृश्य बनाता है।

कल्पना कीजिए कि जब एपीआई पर नई सामग्री उपलब्ध होगी तो मुझे पुश नोटिफिकेशन भेजने की आवश्यकता है। ऐसा करने का सबसे सरल तरीका क्या है?

मैं एंड्रॉइड पर पुश नोटिफिकेशन की प्रक्रिया से थोड़ा भ्रमित हूं। मैंने Firebase पर एक नज़र डाली, लेकिन मुझे नहीं पता कि अगर मुझे Mandbory को Firebase पर एक डेटाबेस की आवश्यकता है, जो परिणाम को नई सामग्री के रूप में संग्रहीत करता है जो API के माध्यम से उपलब्ध है, और फिर डेटाबेस अद्यतन पर एक अधिसूचना ट्रिगर करता है, या यदि मैं नहीं करता हूं डेटाबेस की आवश्यकता है, आदि।

जैसा कि आप देख सकते हैं कि यह मेरे लिए बहुत अस्पष्ट है इसलिए किसी भी मदद की बहुत सराहना की जाती है। धन्यवाद !


इसे प्राप्त करने का सबसे अच्छा तरीका फायरबेस क्लाउड फ़ंक्शंस का उपयोग करना है। यह आपके उपयोगकर्ताओं को सूचित करने में मदद करेगा कि कुछ दिलचस्प होता है, आपके मामले में, जब नई सामग्री उपलब्ध होती है। इसे प्राप्त करने के लिए आप Cloud Firestore या Firebase Realtime Database का उपयोग कर सकते हैं। मैं आपको अपने उत्तर में बताता हूं कि नए Cloud Firestore फायरस्टार का उपयोग करके कैसे किया जा सकता है। इसके लिए मुझे लगता है कि आप फायरबेस प्रमाणीकरण भी लागू करते हैं। जब आप कुछ नया करते हैं तो यह आपको किसी विशेष उपयोगकर्ता या उपयोगकर्ताओं के समूह को सूचनाएं भेजने में मदद करेगा।

इसे प्राप्त करने के लिए, कृपया नीचे दिए चरणों का पालन करें।

  1. Firebase Authentication लागू करें। इसके लागू होते ही, उपयोगकर्ताओं का एक संग्रह बनाएं जिसमें प्रत्येक उपयोगकर्ता उपयोगकर्ताओं के संग्रह के भीतर एक दस्तावेज़ होगा। आपकी डेटाबेस संरचना इस तरह दिखनी चाहिए:

    Firebase-root
        |
        --- users (collection)
              |
              --- uid1 (document)
              |    |
              |    --- //user properties
              |
              --- uid2 (document)
                   |
                   --- //user properties

    उपयोगकर्ता विवरण के अलावा, आपको प्रत्येक उपयोगकर्ता को एक tokenId जोड़ने की आवश्यकता है। कोड की निम्नलिखित लाइन का उपयोग करके आप इसे बहुत आसानी से प्राप्त कर सकते हैं:

    String tokenId = FirebaseInstanceId.getInstance().getToken();

    एक उपयोगकर्ता दस्तावेज़ को इस तरह दिखना चाहिए:

    uid1
     |
     --- userName: "John"
     |
     --- userEmail: [email protected].com
     |
     --- tokenId: "e_wLukMfq..." //very long token
     |
     --- //other details
  2. अब, notifications नाम के यूजर डॉक्यूमेंट में एक नया कोओबिनेशन जोड़ें, जिसमें आपको जो notification भेजना है उसे भेजने की जरूरत है और भेजने वाले को हर बार कुछ नया करने की जरूरत है। यह कुछ इस तरह दिखना चाहिए:

    uid1
     |
     --- userName: "John"
     |
     --- userEmail: [email protected].com
     |
     --- tokenId: "e_wLukMfq..." //very long token
     |
     --- notifications (collection)
     |      |
     |      --- notificationId1
     |              |
     |              --- notificationMessage: "My Notification"
     |              |
     |              --- fromUser: "My Notification"
     |
     --- //other details
  3. अब आपको Cloud Functions में एक फ़ंक्शन लिखने के लिए Node.js का उपयोग करने की आवश्यकता है जो इस संदर्भ में दिखाई देने वाली प्रत्येक नई अधिसूचना के लिए सुनेंगे:

    "users/{uid}/notifications/{notificationId}"

    एक नई अधिसूचना दिखाई देने के बाद, आप एक विशिष्ट उपयोगकर्ता को अधिसूचना भेजने के लिए sendToDevice फ़ंक्शन और sendToDevice उपयोग कर सकते हैं। अधिसूचना एंड्रॉइड सिस्टम द्वारा नियंत्रित की जाएगी और उपयोगकर्ता को प्रदर्शित की जाएगी। ध्यान दें, यह तभी काम करेगा जब ऐप backgroud । जब FirebaseMessagingService को लागू करने से ऐप foreground में है, तो आप सूचनाएं भी प्राप्त कर सकते हैं।