angular2使用Firebase监听更改

时间:2017-02-09 16:51:01

标签: angular typescript firebase angularfire

我是Firebase的新手,我想收听数据库中的更改。

这就是我试过的

constructor(
  private af:AngularFire,
 ){

  this.af.database().ref('registered').on('value', function(snapshot) { //syntax error
    console.log("changed");
  });

  }

如何使用Firebase和angular2听取更改?

我也试过设置OnInit

OnInit(){
    this.af.database().ref('registered').on('value', function(snapshot) {
      console.log("changed");
     });

}

并返回错误this.af.database is not a function

1 个答案:

答案 0 :(得分:2)

您正在使用带有Firebase SDK语法的Angularfire。

使用AngularFire,您必须使用以下内容:

import {Observable} from 'rxjs/Observable';

items: Observable<any[]>;
constructor(af: AngularFire) {
  this.items = af.list('/registered');
}

如果您只想使用Firebase sdk,可以这样做(假设您的项目中有firebase文件):

import firebase from 'firebase';
constructor(){}

OnInit(){
  firebase.database().ref('registered').on('value', snapshot => {
    console.log('changed');
  })
}

修改

如评论中所述,可以订阅一个observable以便在其中执行另一个函数。该函数将被执行,直到可以取消订阅observable。