Firebase 3 - Ionic 2 - .on('值',snapshot => {this ...}这是null

时间:2016-05-28 17:38:36

标签: angular firebase firebase-realtime-database ionic2

当我尝试使用Firebase 3 SDK for Web检索数据时,"这个"显示为null。知道为什么会这样吗?

this.mainApp = firebase.initializeApp(config);
FBGet(path){
    return this.mainApp.database().ref(path);
}
...
GetUser(){
    this.appData.FBGet('users/'+user.uid).on('value', function(snapshot) {
        var objUser = snapshot.val();
        //the following statement is throwing an exception cause 'this' is null
        this.events.publish('user:update', objUser);
    });
}

谢谢

1 个答案:

答案 0 :(得分:1)

您没有使用FBGet的箭头功能,因此this不会绑定到您的组件/提供商。

GetUser(){
  this.appData.FBGet('users/'+user.uid).on('value', (snapshot) => {
    const objUser = snapshot.val();
    // this is now bound to the component using the fat arrow =>
    this.events.publish('user:update', objUser);
  });
}

如果 this.events是同一组件/提供商的属性,则上述解决方案仅适用