16

का स्थान बदलें मैं फ़ायरबेस संदेश (वेब) का उपयोग करने की कोशिश कर रहा हूं। फ़ायरबेस को "फायरबेस-मैसेजिंग-sw.js" फ़ाइल के लिए डिफ़ॉल्ट खोजों से सेवा कार्यकर्ता रखता है।फायरबेस: सेवा कर्मचारी

सेवा कार्यकर्ता स्क्रिप्ट आवेदन के पूर्ण पथ पर होने की उम्मीद है! उदाहरण के लिए: http://localhost/firebase-messaging-sw.js

इस डिफ़ॉल्ट स्थान को कैसे बदलें ?! आधिकारिक दस्तावेज़ों को खोजना मुझे यह विधि मिली: useServiceWorker जो सेवा कार्यकर्ता पंजीकरण स्वीकार करता है, लेकिन इसका उपयोग करने का प्रयास करने में मुझे एक त्रुटि मिलती है कि विधि भी मौजूद नहीं है!

तो, फ़ायरबेस संदेश के लिए सेवा कार्यकर्ता का स्थान कैसे बदलें?

उत्तर

28

जैसा कि माइकल ने फोन किया है, उपयोग करने की विधि userServiceWorker(<registration>) है।

https://firebase.google.com/docs/reference/js/firebase.messaging.Messaging#useServiceWorker

संदेश वर्ग क्या दिया जाता है जब आप firebase.message() कहते हैं।

तो नमूना होगा: https://github.com/firebase/quickstart-js/tree/master/messaging

6

आपको firebase.messaging().useServiceWorker(registration) करने और मौजूदा सेवा कार्यकर्ता पंजीकरण में प्रवेश करने में सक्षम होना चाहिए। ध्यान दें कि आपको इसे जल्द से जल्द करना चाहिए, उदाहरण के लिए किसी भी कॉल से पहले getToken() या onMessage()

+0

हाँ, सुनिश्चित करें। लेकिन कोशिश कर रहा हूं कि मुझे 'विधि मौजूद नहीं है'! – Dewan159

+0

यह मेरे लिए काम करता है - क्या आप सुनिश्चित हैं कि आपने 'firebase.messaging()। UseServiceWorker() 'और' firebase.messaging.useServiceWorker()' नहीं किया है? –

+0

यह भी ध्यान रखें कि यह API लाइब्रेरी के संस्करण 3.5.0 में जोड़ा गया था, इसलिए सुनिश्चित करें कि आपने कम से कम उस संस्करण को अपडेट किया है। – jwngr

0

बाहर निकलने सेवा के माध्यम से useServiceWorker(registration) का उपयोग कर आप Firebase पुश संदेश पर notificationonclick घटना का उपयोग कर सकते हैं:

navigator.serviceWorker.register('./example/sw.js') 
.then((registration) => { 
    messaging.useServiceWorker(registration); 

    // Request permission and get token..... 
}); 

मैं सिर्फ इस Github पर डेमो एप्लिकेशन पर इस मुद्दे के बिना की कोशिश की कार्यकर्ता।

firebase.messaging().useServiceWorker(registration) काम कर रहा है और मेरी समस्या हल है, लेकिन है कि मैं अगर पता नहीं है ध्यान रखें:

  • यह एक सुरक्षित तरीका सर्वर से पेलोड प्राप्त करने के लिए है।

  • पुश नोटिफिकेशन को संभालने का यह सबसे अच्छा तरीका है।

+0

क्या यह प्रश्न का उत्तर है या आप सवाल पूछ रहे हैं (बुलेट पॉइंट्स) खुद? –

+0

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

+0

मैंने आपके उत्तर में शब्द संपादित किया है, इसलिए आपके बुलेट बिंदु अब अन्य उपयोगकर्ताओं (प्रश्नों के बजाय) पर विचार कर रहे हैं। आपका उत्तर इस प्रश्न का एक अच्छा जोड़ा है, धन्यवाद! –

संबंधित मुद्दे