javascript - 如何从 Firebase 获取对象数组?

标签 javascript firebase

当我从 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 之后我可以做些什么来将结果组织到数组中吗?

当前错误:

enter image description here

最佳答案

您可以在客户端将它们排序到一个数组中。

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/

相关文章:

javascript - 将字符串变量从java传递到jsp

firebase - 如何为每个集合插入添加时间戳,在 Cloud Functions 中更新 Firestore 数据库

firebase - PluginRegistry 中的注册器已被弃用

javascript - 如何将 p5.js soundFile 转换为文件 javascript 类?

javascript - 我如何使用html链接调用外部js?

javascript - 如何在 ReactJS 和 ChartistJS 之间委托(delegate) svg 的渲染责任

Javascript 某些方法嵌套在 For 中

android - Firebase 条件列表数据检索 android

swift var 不会在 block 外更新

node.js - 尝试通过 Firebase Cloud Functions (Android) 发送通知后出错