में न्यूथस्टेट चेंज श्रोता पर नया फ़ायरबेस कैसे निकालें I प्रतिक्रिया-राउटर के साथ एक प्रतिक्रिया वेब ऐप में फायरबेस एथ लागू कर रहा हूं।प्रतिक्रिया
कोई उपयोगकर्ता पॉपअप साइन इन का उपयोग कर फेसबुक या Google के साथ (at/signin) में साइन इन करता है, तो यदि सफल होता है तो मैं मुख्य ऐप (/) पर जाता हूं। और
authListener() {
firebase.auth().onAuthStateChanged((user) => {
if (user) {
console.log('user changed..', user);
this.setState({
User: {
displayName: user.displayName
}
});
} else {
// No user is signed in.
browserHistory.push('/signin');
}
});
}
सब कुछ ठीक काम करता है, जब मैं साइन आउट करने को छोड़कर (वापस/साइन-इन करने के लिए जाना: मुख्य अनुप्रयोग घटक में मैं एक प्रमाणन स्थिति परिवर्तन के लिए सुनने:
componentWillMount() {
this.authListener = this.authListener.bind(this);
this.authListener();
}
authListener प्रमाणन परिवर्तन के लिए सुनता है) और फेसबुक या गूगल का उपयोग कर फिर से साइन इन करें। फिर मुझे एक त्रुटि मिल रही है:
चेतावनी: सेटस्टेट (...): केवल घुड़सवार या बढ़ते घटक को अपडेट कर सकते हैं।
मुझे संदेह है कि अब अवांछित पिछला लॉग इन राज्य ऐप से ऑनएथस्टेट चेंज श्रोता अभी भी चल रहा है।
ऐप घटक अनमाउंट करते समय ऑनथस्टेट चेंज श्रोता को हटाने का कोई तरीका है?
किसी भी विचार firebase.auth निकालने का तरीका() .onAuthStateChanged? पुराने फायरबेस में एक .off() फ़ंक्शन – user2248331
हां था, यह पुराना फायरबेस का हिस्सा है। नया दस्तावेज यहां है: https://firebase.google.com/docs/reference/js/firebase.auth.Auth#onAuthStateChanged लेकिन मैं यह नहीं समझ सकता कि opt_completed का उपयोग कैसे करें ... – user2248331
कॉलबैक फ़ंक्शन के रूप में opt_completed श्रोता को हटाए जाने पर बुलाया जाएगा। यह आपके श्रोता को फायरबेस से हटाने पर साफ-सफाई तर्क के लिए है। –