我正在尝试从firebase读取值并将其分配给全局变量,但它不起作用。
public points: any;
readPoints(): any{
this.userProfile.child(this.user.uid).once('value').then((snapshot) =>{
this.points = snapshot.val().user_points;
});
}
console.log(this.points); //undefined
Users{
SAdS4cW57DSLuWr2obbZYUHsmAL2{
user_points: 20
.....
答案 0 :(得分:2)
好吧,您的变量为this.points
,但您正在尝试打印this.point
答案 1 :(得分:1)
我从firebase读了这个article,似乎解决方法是调用另一个函数而不是直接赋值给变量
public points: any;
readPoints(): any{
this.userProfile.child(this.user.uid).once('value').then((snapshot) =>{
this.getPoints(snapshot.val().user_points);
});
}
getPoints(point: any = null): any{
this.points = parseInt(point) + 20;
console.log("point="+ this.points);
}
答案 2 :(得分:0)
您的代码似乎对我而言,请尝试打印QuerySet
以查看它给您的内容。我将添加一个代码,说明我如何想象您的完整数据库查询。
snapshot.val()
它是否在控制台上出现任何错误?它是否正确firebase.database().ref('Users/').child(this.user.uid).once('value').then(snapshot => {
this.points = snapshot.val().user_points;
})
?