当我从 Firebase 中的 JSON 表中获取所有项目时,它会将它们作为对象的对象 返回。
如何让 Firebase 向我返回一个对象数组,以便它与我的 ngFor
一起很好地工作?
我在 Firebase 中使用 angular 2 beta 和 typescript。
这是从 Firebase 返回的当前结构:
{{"item": ""}, {"item": ""}, {"item": ""}}
我想要这个(对象数组):
[{"item": ""}, {"item": ""}, {"item": ""}}]
这是我的有效 firebase 代码:
var query = this.refJob.orderByChild('status').equalTo('Active');
query.on('value', (snap) => {
resolve(snap.val());
});
在 equalTo
之后我可以做些什么来将结果组织到数组中吗?
当前错误:
最佳答案
您可以在客户端将它们排序到一个数组中。
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));
});
});
此外,不要将 promises 与 .on()
一起使用,因为 .on()
可以/将被调用多次,而 promises 只会被调用一次。
如果您想对 Firebase 和 Angular 2 使用类似 promises 的东西,请考虑使用 Observables。
关于javascript - 如何从 Firebase 获取对象数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34357984/