从AngularFire 2获取单个值可观察到



我遇到一些问题,了解如何处理从Angularfire 2可观察到的对象流。

查看此示例:

// create observable
var observalbe = Rx.Observable.range(1, 3);
// Prints out each item
var subscription = observalbe.subscribe(
  x => console.log(x)
);

这将输出:

// 1
// 2
// 3

据我了解,这就是我期望的行为。

现在,我想订阅使用AngularFire 2:

的Firebase上的实时数据库集合
// af is an instance of AngularFire-Service that is injected in the constructor
var observable = af.database.list('/items');
observable.subscribe(
    x => console.log(x)
);

我期望的是,我的箭头函数将被调用该集合中存在的每个对象,并且每次将新项目添加到Firebase Collection中时也会被调用。

相反,箭头函数仅调用一次,并给出一个带有所有对象的数组。当将新对象添加到集合中时,再次调用箭头函数,然后再次通过整个集合,而不是仅新对象。

我在这里做错了吗?就我而言,我非常希望收集中的每个项目都调用箭头功能。

有没有办法实现这一目标?

这确实取决于您想做的事情,但您可以映射。

observable.subscribe(x => {
  x.map(y => console.log(y));
});