如何将从firebase读取的值赋给变量

时间:2017-02-20 12:04:45

标签: javascript firebase firebase-realtime-database ionic2

我正在尝试从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
.....

3 个答案:

答案 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; })