快照firebase Angular之外的变量

时间:2017-08-15 05:08:11

标签: angular typescript firebase ionic-framework firebase-realtime-database

这可能会很简单,但我在Angular中遇到了很多这个问题,我需要一些解释。我试图做的就是获取快照函数之外的变量值。如果我可以做这样的事情

let testVariable : string;

var testCount = firebase.database().ref('users/' + userName + '/userName');

testCount.on('value', function (snapshot) {

testVariable = snapshot.val();


});

alert(testVariable); //comes out undefined

谢谢

1 个答案:

答案 0 :(得分:0)

问题是您的代码是异步运行的。这意味着javascript将调用firebase并立即调用alert函数,而不等待任何响应。您的警报必须放在回调中,或者在设置变量后调用。

如果你正在使用"这个"你可能在函数中访问它时遇到问题。如果是这样,请将函数语法更改为如下箭头:

testCount.on('value', (snapshot) => {

     this.testVariable = snapshot.val();


});