2016-10-10 10 views
12

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

डाटाबेस फ़ील्ड का सबसे छोटा आकार क्या है जिसका उपयोग मुझे 100% क्लाइंट पंजीकरण टोकन जेनरेट करने के लिए करना चाहिए?

मैं दो differentlibraries कि TextField और VarChar(255) का उपयोग लेकिन कुछ भी स्पष्ट रूप से अधिकतम लंबाई को परिभाषित मिल गया है। इसके अलावा, मैं सर्वर कोड को त्वरित लंबाई जांचने के लिए चाहता हूं कि यह सुनिश्चित करने के लिए टोकन प्राप्त करें कि वे "देखो" सही हैं - एक अच्छी न्यूनतम लंबाई और जांच के लिए वर्णों का सेट क्या होगा?

उत्तर

9

मुझे लगता है कि एफसीएम का यह हिस्सा अभी भी जीसीएम जैसा ही है। इसलिए, आप @TrevorJohns द्वारा इस answer का संदर्भ लेना चाहिए:

प्रलेखन किसी भी पैटर्न, इसलिए किसी भी मान्य स्ट्रिंग अनुमति दी है निर्दिष्ट नहीं है। प्रारूप भविष्य में में बदल सकता है; कृपया इस इनपुट को के विरुद्ध किसी भी पैटर्न के विरुद्ध मान्य न करें, क्योंकि ऐसा होने पर आपके ऐप को तोड़ने का कारण हो सकता है।

"पंजीकरण_आईडी" फ़ील्ड के साथ, आकार पर ऊपरी सीमा एक कुकी के लिए अधिकतम आकार है, जो 4K (4096 बाइट्स) है।

प्रारूप भविष्य भाग में बदल सकता है पर जोर देते हुए मैं सुरक्षित रहने के लिए सुझाव है और हमेशा की तरह अधिकतम (जैसा कि ऊपर उल्लेख) लंबाई से परे एक होगा। चूंकि पंजीकरण टोकन का प्रारूप और लंबाई भी भिन्न हो सकती है।

सामान्य लंबाई और वर्ण के लिए

, तो आप इन twoanswersका उल्लेख कर सकते बाद किया जा रहा है और अधिक निश्चित:

मैं GCM RegistrationId के प्रारूप के बारे में कोई आधिकारिक जानकारी नहीं देखा गया है, लेकिन मैं इस तरह के आईडी की हमारे डाटाबेस का विश्लेषण किया गया है और निम्नलिखित निष्कर्ष कर सकते हैं:

    ज्यादातर मामलों एक RegistrationId की लंबाई प्रतीकों के बराबर होती है में
  • , लेकिन करने के लिए विविधता हो सकती है प्रतीकों, शायद अन्य लंबाई भी;
  • यह केवल इस वर्ण से होते हैं: [0-9a-zA-Z\-\_]*
  • हर Regid एक या "सीमांकक" के दोनों शामिल हैं: - (ऋण) या _ (ड्रॉइंग)
+3

हम अपने टोकन में भी ':' प्राप्त कर रहे हैं। प्रलेखन https://firebase.google.com/docs/cloud-messaging/server एक उदाहरण टोकन को 'bk3RNwTe3H0: CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1 के रूप में दिखाता है ...' जो निश्चित रूप से ':' है। – jamesc

+1

@jamesc मैंने पहले टोकन में ':' देखा है। मुझे लगता है कि यह मान्य डेलीमीटर चरित्र है। –

+0

@jamesc मैं आमतौर पर क्रोम क्लाइंट ऐप के लिए पंजीकरण टोकन के लिए ':' देखता हूं। लेकिन मुझे लगता है कि एंड्रॉइड और आईओएस के बावजूद यह अभी भी संभव है। वैसे भी, मुझे लगता है कि बहुत ऊपर से मेरा जवाब आपको एक विचार देता है और आपकी पूछताछ को कवर करता है। यदि आप सहमत हैं, तो कृपया इसे सही उत्तर के रूप में स्वीकार करें ताकि इसे उत्तर के रूप में टैग किया जा सके। चीयर्स! –

5

मैं अब Firebase क्लाउड संदेश के बजाय का उपयोग कर रहा जीसीएम का। क्या उल्लेख किया jamesc (: CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1 जैसे bk3RNwTe3H0) की तरह हर बार बहुत शुरुआत में:

registration_id मुझे मिल गया है की लंबाई 152.

मैं भी मिल गया है कि ""।

मैं टोकन को वर्कर (255) के रूप में बना देता हूं जो मेरे लिए काम कर रहा है।

हालांकि, पंजीकरण_आईडी की लंबाई 4k के आकार के साथ कोई संबंध नहीं है। आपको नेटवर्क के माध्यम से डेटा का आकार भेजने की अनुमति है। आम तौर पर, कुकीज़ 4096 बाइट तक सीमित होती है, जिसमें नाम, मूल्य, समाप्ति तिथि इत्यादि शामिल हैं

+0

हां, यह ज्यादातर बार 152 वर्ण है। – zhilevan

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