Javascript 从angularfire 2 observable获取单个值

Javascript 从angularfire 2 observable获取单个值,javascript,angular,angularfire,firebase-realtime-database,rxjs,Javascript,Angular,Angularfire,Firebase Realtime Database,Rxjs,我在理解如何处理从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可见光发射的物体流时遇到了一些问题

看看这个例子:

// 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上的实时db集合:

// 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集合时,它也将被调用

相反,arrow函数只调用一次,并给出一个包含所有对象的数组。将新对象添加到集合时,将再次调用arrow函数,并将其传递给整个集合,而不仅仅是新对象

我做错什么了吗?在我的例子中,我非常希望集合中的每个项目都调用arrow函数


有什么方法可以做到这一点吗?

我想这取决于你想做什么,但你可以映射它

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

我想这真的取决于你想做什么,但你可以绘制它

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