2016-08-22 11 views
14

मैंने अपने प्रोजेक्ट में एफसीएम जोड़ने के लिए firebase.google.com पर दिए गए निर्देशों का पालन किया।
सब ठीक था, मुझे संदेश मिला है "फायरबेसेज प्रारंभिक सफलता" और मेरे लॉग में ताजा टोकन। लेकिन यह काम नहीं कर रहा है ... केवल टोकन को भेजने वाली पहली पुश अधिसूचना मुझे सफलता मिलती है। दूसरा पुश और बाकी त्रुटि "NotRegistered" मिलता है।
प्रलेखन कहते हैंएफसीएम रिटर्न त्रुटि: पहले संदेश के बाद पंजीकृत नहीं

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

लेकिन आवेदन हटा दिया गया था नहीं और ग्राहक अनुप्रयोग संदेशों को प्राप्त करने क्योंकि पहला संदेश ग्राहक

+0

जांचें कि 'ऑन टोकन रीफ्रेश()' विधि कहलाती है या नहीं। इसका मतलब है कि टोकन अपडेट किया गया है और आपको नए टोकन का उपयोग करना होगा। क्या आप अधिसूचना भेजने के लिए फायरबेस कंसोल का उपयोग कर रहे हैं? या आप अपने सर्वर कार्यान्वयन का उपयोग कर रहे हैं। – GeorgeLBA

+0

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

+0

निकिता, पहली अधिसूचना भेजने के बाद टोकन प्रिंट करने का प्रयास करें। बस यह सुनिश्चित करने के लिए कि टोकन बदल नहीं रहा है। 'FirebaseInstanceID.getToken()' का उपयोग करें और सत्यापित करें कि अधिसूचना भेजने के बाद टोकन समान है या नहीं। यदि यह शून्य है क्योंकि किसी कारण से टोकन हटा दिया गया था। – GeorgeLBA

उत्तर

4

मैं घंटों के लिए संघर्ष करना पड़ा की बात आती है कॉन्फ़िगर किया गया है, लेकिन मैं समस्या का पता चला। यह भी खोजना और समझाना वाकई मुश्किल था। मैं कोशिश करता हूँ:

मेरे परियोजना है कि अंदर एक और निर्भरता के साथ एक निर्भरता है: My project > Dependency > Sub-dependency

उप निर्भरता <application> टैग के साथ एक AndroidManifest.xml फ़ाइल है। ऐसा ही कुछ:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.my_sub_library"> 

    <application android:allowBackup="true"> 

    </application> 

</manifest> 
इस आवेदन टैग की वजह से

, मेरी निर्भरता यह करने के लिए की जरूरत:

<manifest package="br.com.ilhasoft.support.databinding" 
    xmlns:tools="http://schemas.android.com/tools"> 
    <application tools:node="replace"/> 
</manifest> 

मेरे समाधान की जगह आवेदन टैग हटाने के द्वारा उप-निर्भरता को अद्यतन करने और निर्भरता को हटाने के अद्यतन करने के लिए था कार्रवाई।

किसी भी तरह, फायरबेस मेरे FirebaseMessagingService को अनदेखा कर रहा था और मेरे एफसीएम पंजीकरण टोकन को रद्द कर रहा था।

मेरा सुझाव है कि आप अपनी निर्भरताओं की जांच करें कि किसके पास एप्लिकेशन टैग है और इसे अपडेट/प्रतिस्थापित करें। यह मेरे लिए काम किया!

+0

+100 आप मेरा दिन बचाओ। –

+0

क्या वह एनपीएम पैकेज में 'उप-निर्भरता' नहीं है? यदि ऐसा है, तो आपने इसे कैसे अपडेट किया? – jbarradas

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