24

मैं फायरबेस के लिए नया हूं, मैं इसे सीखने के लिए एक बच्चा सीखने की तरह सीख रहा हूं। अब तक मैंने अपने फोन के लिए फायरबेस फ्रेमवर्क द्वारा उत्पन्न टोकन का उपयोग करके अपने फोन पर एक संदेश भेजने में कामयाब रहा है। अब यहां यह मुश्किल हो गया है (मेरी राय में)। FirebaseInstanceIdService विस्तारित सेवा में onTokenRefresh() नामक एक विधि है। चूंकि इसे कहा जाता है रीफ्रेश करें, तो मुझे लगता है कि यह बदल जाएगा। मैं जानना चाहता हूं कि यह टोकन कब बनाया गया है और यह कब बदला जाएगा?फायरबेस का ऐप टोकन किस अवधि में बदलता है और इसे कैसे प्रबंधित किया जाता है?

और यदि यह बदलता है, तो मान लीजिए कि मैं टोकन 'ए' वाले डिवाइस पर एक संदेश भेजता हूं जो अब ऑफ़लाइन है, इसलिए इसे कतारबद्ध किया जाएगा। अब जब डिवाइस ऑनलाइन हो जाता है, तो यह 'बी' को टोकन "रीफ्रेश" करेगा। अब जब संदेश टोकन 'ए' को दिया जाना था, तो संदेश कभी नहीं दिया जाएगा। मैं इस स्थिति का प्रबंधन कैसे कर सकता हूं?

उत्तर

35

ऐप लॉन्च होने के बाद, टोकन जेनरेट किया जाता है, जैसे ही फ़ोन Google सर्वर से कनेक्ट हो सकता है। आवश्यक कनेक्टिविटी के कारण यह तुरंत नहीं हो सकता है, लेकिन अधिकांश मामलों में उपयोगकर्ता ऐप खोलने के कुछ सेकंड बाद होगा। जैसे ही टोकन उत्पन्न होता है विधि onTokenRefresh() कहा जाता है।

जैसा कि आपने बताया कि टोकन बदल सकता है, इस स्थिति में onTokenRefresh() विधि फिर से कॉल की जाएगी।
ताज़ा घटना किसी भी तरह दुर्लभ है, इसे अक्सर देखने की उम्मीद नहीं है।

जब रीफ्रेश टोकन होता है, तो पुराने संदेशों को "सफलतापूर्वक" भेजा गया सभी संदेश (एपीआई आपको एक संदेश-आईडी लौटाता है) वितरित किया जाएगा।

अंत में, ताज़ा होने के बाद भी पुराना टोकन अभी भी एक छोटी अवधि के लिए काम करेगा, जिससे ऐप को नए टोकन को अपने बैक-एंड में संवाद करने की अनुमति मिल सके।

+0

thans आप अपने पूरी तरह से जवाब – roostaamir

+3

के लिए मैं डेटाबेस में मेरी Android एप्लिकेशन को उपयोगकर्ता के तालिका में FCM टोकन संगृहीत करने जब उपयोगकर्ता एप्लिकेशन रजिस्टर चाहते हैं। जब मैं विशिष्ट उपयोगकर्ता को अधिसूचना भेजना चाहता हूं तो मैं टोकन को इसी पंक्ति से लाऊंगा और पुश अधिसूचना भेजूंगा। लेकिन मैं उलझन में हूं कि जब भी ऐप उपयोगकर्ता अपने ऐप से लॉगआउट करता है और उसी डिवाइस से नया खाता पंजीकृत करता है, तो वहां दो पंक्ति होगी और इसलिए डेटाबेस पर एक ही डिवाइस के लिए दो टोकन। ऐसे मामले को कैसे संभालें? डिवाइस में पुराने टोकन के साथ क्या होता है? कृपया कोई मेरी मदद कर सकता है ?? –

+0

संक्षिप्त उत्तर यह है कि आपको इस स्थिति को संभालने के लिए कुछ तर्क की आवश्यकता है, और शायद आपको इस तरह के तर्क को कुशल तरीके से समर्थन देने के लिए अपने डेटाबेस को डिज़ाइन करने की आवश्यकता है। क्षमा करें अगर मैं विवरण में नहीं जाता हूं लेकिन पूरा जवाब वास्तव में यहां लंबा होगा। –

15

आपके ऐप की आरंभिक स्टार्टअप पर, एफसीएम का एसडीके क्लाइंट ऐप इंस्टेंस के लिए पंजीकरण टोकन उत्पन्न करता है। जैसा कि ऊपर कहा गया है, यह एक दुर्लभ घटना है। विशिष्ट होने के लिए, पंजीकरण टोकन बदल सकता है जब:

  • ऐप इंस्टेंस आईडी हटा देता है।
  • एप्लिकेशन नए उपकरण
  • उपयोगकर्ता स्थापना रद्द करें पर पुनर्स्थापित किया जाता है/एप्लिकेशन
  • उपयोगकर्ता एप्लिकेशन डेटा को साफ करता है पुनर्स्थापित करें।

उदाहरण आईडी सुरक्षा टोकन कि तीसरे पक्ष को अपने ऐप्लिकेशन के सर्वर साइड का उपयोग करने के संसाधनों उदाहरण आईडी सर्वर भी आपको बता सकता है प्रबंधित जब अधिकृत करते हैं उत्पन्न करने के लिए एक सरल एपीआई प्रदान करता है अपने apps.Instance आईडी उदाहरण प्रति एक अद्वितीय ID प्रदान करता है जिस डिवाइस पर आपका ऐप इंस्टॉल किया गया था, उसका आखिरी इस्तेमाल किया गया था। हम यह तय करने के लिए इसका उपयोग कर सकते हैं कि ऐप से डेटा रखना है या उपयोगकर्ताओं के साथ फिर से जुड़ने के लिए पुश संदेश भेजना है।

हर बार डिवाइस टोकन बदल गया है, यह हो रही डिवाइस टोकन जब यह बदल गया है, हम ताजा टोकन प्राप्त करने के लिए इस विधि कॉल कर सकते हैं onTokenRefresh() विधि का में दिखाई देता है।

और किसी भी समय हम FirebaseInstanceId.getInstance()। GetToken() विधि का उपयोग कर सकते हैं वर्तमान डिवाइस token.It डिवाइस टोकन प्राप्त करने के समय का एक सा लेता है पाने के लिए पर डिवाइस टोकन प्राप्त करने के।

डिवाइस पंजीकरण टोकन तक पहुंचने के बारे में अधिक पढ़ने के लिए here पर क्लिक करें।

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

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