当我从Firebase中的JSON表中获取所有项目时,它会将它们作为对象对象返回。
如何让Firebase返回一个对象数组,以便它与我的ngFor
很好地协同工作?
我在Firebase中使用了角度2 beta和打字稿。
这是从Firebase返回的当前结构:
{{"item": ""}, {"item": ""}, {"item": ""}}
我想要这个(对象数组):
[{"item": ""}, {"item": ""}, {"item": ""}}]
这是我的firebase代码:
var query = this.refJob.orderByChild('status').equalTo('Active');
query.on('value', (snap) => {
resolve(snap.val());
});
在equalTo
之后我可以做些什么来将结果组织成数组吗?
当前错误:
答案 0 :(得分:1)
您可以在客户端将它们排序为数组。
var query = this.refJob.orderByChild('status').equalTo('Active');
var array = [];
query.on('value', (snap) => {
snap.forEach((child) => {
var item = {};
item._key = snap.key();
array.push(item));
});
});
此外,不要使用.on()
的承诺,因为.on()
可以/将被多次调用,而承诺只会被调用一次。
如果你想使用像Firebase和Angular 2这样的Promises,请查看使用Observables。