我在Ionic页面的构造函数中很难通过subscribe获取数据,基本上我需要进行subscribe获取列表并显示给用户,但我不确定
在我的构造函数中,我这样做:
this.getUser(this.auth.currentUser().uid);
console.log(this.user);
我的getUser():
getUser(uid) {
const self = this;
this.auth.getUserData(uid).subscribe(function(doc) {
if (doc.exists) {
self.user = doc.data();
} else {
console.log("No such document!");
}
});
};
但是,当我用按钮调用其他函数时,我得到了数据:
userf(){
console.log(this.user);
}
糟糕:我使用Firestore
答案 0 :(得分:0)
它给您未定义的原因是因为您的方法“ getUser”是异步的,并且当您调用console.log时,尚未获得用户值。
因此,在收到getUser方法后,您应该在其中访问用户值。
现在您还尝试使用const将“ this”传递到getUser方法中。开始使用不创建自己范围的胖箭头功能(此):
getUser(uid) {
this.auth.getUserData(uid).subscribe((doc) => {
if (doc.exists) {
this.user = doc.data();
} else {
console.log("No such document!");
}
});
};