हां, और यह बहुत परेशान है। यह एक पंजीकरण कॉल के कारण है। इतना ही नहीं, एथस्टेट चेंज पर कई अलग-अलग राज्यों में कई बार बुलाया जा रहा है, यह जानने की कोई संभावना नहीं है कि यह कौन सा राज्य है।
Documentation का कहना है:
onAuthStateChanged (FirebaseAuth प्रमाणन)
इस विधि प्रमाणीकरण राज्य में बदलाव पर यूआई धागा में लागू किया जाता है:
यहाँ कुछ में कोई परिवर्तन होता है वर्तमान स्थिति की खोज करने के लिए युक्तियाँ:
- पंजीकरण कॉल: ध्वज के साथ पहली कॉल छोड़ें।
- उपयोगकर्ता साइन इन किया गया: पैरामीटर से उपयोगकर्ता है! = शून्य।
- उपयोगकर्ता ने साइन आउट किया: पैरामीटर से उपयोगकर्ता == शून्य है।
- वर्तमान उपयोगकर्ता परिवर्तन: पैरामीटर से उपयोगकर्ता है! = शून्य और अंतिम उपयोगकर्ता आईडी है! = पैरामीटर
- उपयोगकर्ता टोकन रीफ्रेश करें: पैरामीटर से उपयोगकर्ता है! = शून्य और अंतिम उपयोगकर्ता आईडी == उपयोगकर्ता आईडी पैरामीटर से है
यह श्रोता एक गड़बड़ और बहुत बगप्रोन है। फायरबेस टीम को इसमें देखना चाहिए।
आपका कोड कहां है? –
यह समस्या मेरे कोड में भी मौजूद है। 'ऑनस्टार्ट()' में केवल सुपर को कॉल करने के अलावा ही यह कोड है: 'FirebaseAuth.getInstance()। AddAuthStateListener (यह); '। यह कॉल कहीं और नहीं मिला है और मैंने जांच की है कि 'ऑनस्टार्ट()' केवल एक बार कहा जा रहा है। फिर भी, 'onAuthStateChanged (...)' विधि को दो बार (या कभी-कभी तीन बार) कहा जाता है। –
शायद एक बग, इस जवाब में इस तरह के ध्वज का उपयोग करें: http://stackoverflow.com/a/37686371/3597165 – user3597165