2014-05-25 11 views
6

के लिए पंजीकरण आईडी डुप्लिकेशन, हमारे पास एक ऐसा ऐप है जो जीसीएम का उपयोग करता है। जब उपयोगकर्ता पहली बार ऐप खोलता है, ऐप साझा प्राथमिकताओं को यह देखने के लिए जांचता है कि क्या उपयोगकर्ता पहले पंजीकृत है या नहीं। अगर पंजीकरण आईडी जीसीएम से ली गई है और साझा प्राथमिकताओं में संग्रहीत नहीं है। एक तृतीय पक्ष सर्वर भी है जहां उपयोगकर्ता आईडी और पंजीकरण आईडी संग्रहीत की जाती हैं। मैं प्रामाणिक id मुद्दों के लिए पढ़ सकते हैं और लागू किया निम्नलिखित मामलों:जीसीएम

  1. अगर एक नए पंजीकरण आईडी (प्रामाणिक id) प्राप्त होता है, सूचना भेजने के दौरान, वर्ष पंजीकरण आईडी 3 पार्टी सर्वर में प्रामाणिक id के साथ अद्यतन किया जाता है।
  2. जब उपयोगकर्ता ऐप को अनइंस्टॉल करता है, और जब तृतीय पक्ष सर्वर अनइंस्टॉल किए गए ऐप पंजीकरण आईडी को अधिसूचना भेजता है, तो पंजीकृत संदेश प्राप्त नहीं होता है और पंजीकरण आईडी तृतीय पक्ष डेटाबेस से हटा दी जाती है।

डेवलपर के रूप में हमारे पास डेटाबेस में संग्रहीत कई पंजीकरण आईडी हैं। क्योंकि हम अक्सर ऐप को अनइंस्टॉल और इंस्टॉल करते हैं। आम तौर पर उपयोगकर्ता ऐसा नहीं करेगा। फिर हमने डिवाइस आईडी को डिवाइस के लिए एक अद्वितीय आईडी के रूप में उपयोग करने पर विचार किया और जांच की कि उपयोगकर्ता पहले पंजीकृत है या नहीं। क्या इसके लिए एंड्रॉइड डिवाइस आईडी का उपयोग करना ठीक है? डिवाइस के लिए एकाधिक पंजीकरण आईडी को रोकने के लिए मुझे क्या विचार करना चाहिए? ये एकाधिक पंजीकरण आईडी कई एंड्रॉइड डिवाइस पर धक्का देती हैं। मुख्य पंजीकरण आईडी मुख्य रूप से:

  1. ऐप को अनइंस्टॉल किया गया था और हाल ही में पुनर्स्थापित किया गया था। मैं उपयोगकर्ता को अनइंस्टॉल और इंस्टॉल कैसे कर सकता हूं और पहले से ही एक पंजीकरण आईडी है?
  2. कैश साफ़ कर दिया गया था और/या हाल ही में ऐप के लिए डेटा साफ़ कर दिया गया था। मैं उपयोगकर्ता को ऐप डेटा को साफ़ करने का पता कैसे लगा सकता हूं और पहले ही पंजीकरण आईडी बना सकता हूं?

कैनोलिक आईडी को संभालने के लिए सबसे अच्छा अभ्यास क्या है?

+0

कैनोनिकल आईडी @ https://developer.android.com/google/gcm/adv.html – Raghunandan

उत्तर

2

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

फिर, जब आप ऐप लॉन्च करते हैं, यदि उपयोगकर्ता डेटा साझा प्राथमिकताओं में उपलब्ध नहीं है, तो आप इसे बाहरी संग्रहण से पुनर्स्थापित करने का प्रयास करते हैं। केवल अगर यह बाहरी संग्रहण में उपलब्ध नहीं है, तो आप मानते हैं कि यह एक नए डिवाइस पर ऐप की एक नई स्थापना है और जीसीएम में पंजीकरण करें (इसके अतिरिक्त, आपको सलाह दी जाती है कि जब भी आपके ऐप का कोई नया संस्करण हो तो जीसीएम में पुनः पंजीकरण करें स्थापित)।

और यदि क्लाइंट पक्ष में यह सब हैंडलिंग विफल हो जाती है, तो आपको तब भी सर्वर से डुप्लिकेट पंजीकरण आईडी हटाने का मौका मिलता है, जब भी आपको Google से प्रतिक्रिया में कैननिकल पंजीकरण आईडी मिलती है।

+0

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

+0

@ मुरत उस समस्या को हल किया जा सकता है यदि आप प्रत्येक डिवाइस के लिए एक अद्वितीय आईडी जेनरेट करते हैं जिस पर आपका ऐप इंस्टॉल किया गया है (और डिवाइस को बाहरी स्टोरेज में इस आईडी को स्टोर करें)। फिर आप इस आईडी को पंजीकरण आईडी से जोड़ते हैं। इस प्रकार उपयोगकर्ता आईडी को कई उपकरणों से जोड़ा जा सकता है, लेकिन आप अभी भी जानते हैं कि कौन सी पंजीकरण आईडी एक ही डिवाइस का प्रतिनिधित्व करती हैं। – Eran

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