- शिप
- 26 अगस्त 2026 को 5:58 am बजे UTC
- लेखक
- Kamo
- Commit
- 8a809b3
सदस्य अपने फोन पर एक ही चैट संदेश तीन बार प्राप्त कर रहे थे। पंजीकरण अद्वितीय हैं (device token id, org id, push kind), पर नहीं token धक्का। एक ही हैंडसेट पर फिर से हस्ताक्षर करने के लिए एक ब्रांड-नए मिनट user device tokens row (device/register mints बिना शर्त) जबकि FCM SAME टोकन को वापस सौंपते रहते हैं - इसलिए प्रत्येक साइन-इन ने एक और लाइव छोड़ दिया पंजीकरण पंक्ति एक फोन पर इंगित करती है, और doDispatch ने समान भेजा प्रति पंक्ति एक बार संदेश। प्रोडक्शन ने एक ही हैंडसेट के लिए ऐसी पांच पंक्तियों को ले लिया: org 1168485648209608710 / सदस्य 1168485658174423046 5 पंजीकरण पंक्तियां | 5 device token ids पूरे टेबल में 21 पंक्तियाँ केवल 2 वास्तविक उपकरणों को हल करती हैं। न तो मौजूदा गार्ड इसे पकड़ सकता है। प्रति वार्तालाप दर सीमा है ओएनसीई का मूल्यांकन, प्रशंसक-आउट से पहले, इसलिए यह दर-सीमाओं की घटनाओं को सीमित करता है, नहीं भेजता है। The FCM पतन कुंजी केवल एक ऑफ़लाइन डिवाइस के लिए अभी भी QUEUED संदेशों को पतन, पहले से ही वितरित कभी नहीं। Fcmsender's stale-registration pruning कभी नहीं आग, क्योंकि डुप्लिकेट टोकन पूरी तरह से मान्य है - एफसीएम रिटर्न मृत टोकनों के लिए अविवाहित, अतिरिक्त पंक्तियों के लिए नहीं, एक लाइव नाम देना। पुश टोकन गंतव्य है, इसलिए अब यह पहचान है: विशिष्ट Destinations प्रति (pushKind, pushToken) हाल ही में अद्यतन पंक्ति रखता है और बाकी को छोड़ देता है, वास्तविक रूप से अलग-अलग उपकरणों को छोड़ देता है। एक साथ पंक्तियाँ एक गंतव्य के लिए खड़े होने की अनुमति के बजाय खाली टोकन को छोड़ दिया जाता है। यह मौजूदा पंक्तियों को माइग्रेशन के बिना ठीक करता है। साथी में परिवर्तन सुरक्षा सेवा उन्हें पहले स्थान पर जमा करने से रोकती है।.