2017-02-20 18 views
0

firebaseから値を読み込み、グローバル変数に代入しようとしましたが、動作しませんでした。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

に代わりに割り当てた値の別の関数を呼び出すことで、あなたはあなたのデータベース構造のexempleと疑問に更新することができますか? –

+0

私はdb構造を追加しました –

答えて

2

さて、右の私には思える、それはあなたを与えるかを見るためにあなたのsnapshot.val()を印刷してみてください、あなたの変数はthis.pointsですが、this.point

+0

これは問題ではありません!私はちょうど私がコードからコピーしなかった誤ってここに入力した! –

0

あなたのコードを印刷しようとしています。私はちょうどあなたの完全なデータベースクエリがどのように想像するのコードを追加します。

firebase.database().ref('Users/').child(this.user.uid).once('value').then(snapshot => { 
    this.points = snapshot.val().user_points; 
}) 

コンソールにエラーがありますか? this.user.idが正しいですか?

+0

いいえ!それは何のエラーも与えなかった! –

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); 
} 
関連する問題