监听 angularfire2 中集合的更新非常简单。我还想在将新项目添加到集合(或从集合中删除(时运行一个函数。下面是一些示例代码:
let path = 'doc1/' + doc2 + '/doc3/';
this.varCollection = this.afs.collection(path);
this.var = this.varCollection.valueChanges(); //Do something here?
valueChanges()
返回一个 Observable,因此您可以按如下方式订阅它:
this.subscription = this.varCollection.valueChanges().subscribe((val) => {
this.var = val;
runSomeFunc();
})
如果您在模板中使用async
管道,或者只想保持 Observable 原样,请尝试.map()
它,然后返回:
this.var = this.varCollection.valueChanges().map(_ => {console.log('value changed'); return _});
如果您需要文档的元数据,可以使用snapshotChanges()
:
this.subscription = this.varCollection.snapshotChanges().subscribe( //do something )