angular2 监听 Firebase 的变化

angular2 listening for changes with Firebase

我是 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");
     });

}

和returns一个错误this.af.database is not a function

您正在使用具有 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。