मैं अपने Angular7 ऐप के साथ फायरबेस ऑथ का उपयोग करने की कोशिश कर रहा हूं। मैं उपयोगकर्ता डेटा को संसाधित करने के लिए कुछ फ़ंक्शन का उपयोग करना चाहता हूं। हालाँकि जब मैं Google खाते से लॉगिन करता हूँ, तब तक कोड जब तक myFunction काम नहीं करता है, लेकिन myFunction के काम नहीं करने के बाद मुझे यकीन नहीं है कि मूल कारण कोई संदेश नहीं दिखाया गया था।

क्या आप कृपया मुझे सलाह दे सकते हैं?

constructor(private afAuth: AngularFireAuth) {}

public myFunction(obj: any){
  console.log(obj)
}

public socialLogin() {
  var provider = new firebase.auth.GoogleAuthProvider();
  this.afAuth.auth.useDeviceLanguage();
  this.afAuth.auth.signInWithPopup(provider).then(function(result) {
    console.log('logged in'); <- work!
    var user = result.user; <- work!
    console.log(user) <- work!
    this.myFunction(user); <- not work
    console.log('test'); <- not work
  })

टाइपप्रति संस्करण 2.9.2 . है

0
kaz0621 21 फरवरी 2019, 15:11

1 उत्तर

सबसे बढ़िया उत्तर

एक तीर फ़ंक्शन का उपयोग करें (संलग्न संदर्भ को इनहेरिट करने के लिए), आपके कोड में कॉलबैक एक अलग this के लिए बाध्य है

this.afAuth.auth.signInWithPopup(provider).then(result => {
    console.log('logged in'); <- work!
    var user = result.user; <- work!
    console.log(user) <- work!
    this.myFunction(user); <- not work
    console.log('test'); <- not work
  })
0
Karim 21 फरवरी 2019, 14:40