5

त्रुटि: लेखन त्रुटि:: (वादा में) Uncaught लाइन नंबर 8 पर सेट नहीं कर सकता संपत्ति अशक्त

firebase.auth().onAuthStateChanged((user) => { 
    if(user) { 
    this.isLoggedIn = true; //Set user loggedIn is true; 
    this.isAdmin = false; 
    firebase.database().ref('/userProfile/' + user.uid).once('value').then(function(snapshot) { 
     let userInfo = snapshot.val(); 
     if(userInfo.isAdmin == true) { 
     //ERROR AT THIS LINE: 
     //Error: Uncaught (in promise): TypeError: Cannot set property 'isAdmin' of null 
     this.isAdmin = true; 
     console.log(userInfo); 
     } 
    }); 
    } else { 
    this.isLoggedIn = false; //Set user loggedIn is false; 
    } 
}); 
की 'isAdmin'

मैं हो रही है त्रुटि

Error: Uncaught (in promise): TypeError: Cannot set property 'isAdmin' of null

कृपया मदद!

उत्तर

7

या तो आप तीर समारोह

firebase.database().ref('/userProfile/' + user.uid).once('value') 
.then((snapshot) => { 

का उपयोग करें या का उपयोग

var self = this; 

firebase.database().ref('/userProfile/' + user.uid).once('value') 
.then(function(snapshot) { 
    self.isAdmin = true; 

अन्यथा this वर्तमान समारोह को इंगित नहीं करता है जब यह कहा जाता है कर सकते हैं।

यह भी देखें https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Functions/Arrow_functions

+1

यह उत्तर सही है। 'यह' स्कोप फ़ायरबेस डेटाबेस कॉलबैक के अंदर बदलता है, इसलिए आपको संदर्भ को सही तरीके से रखना होगा। –

+1

धन्यवाद! यह मेरी समस्या हल हो गया! –

+0

@Gunter क्या आपके पास कोणीय 2 पर एक पृष्ठ है, मैं इस 'स्कोप के बारे में पढ़ सकता हूं? – crh225

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