如何从Firebase检索数据?

时间:2015-12-15 15:06:40

标签: javascript object firebase

我在以特定格式从firebase检索数据时遇到一些麻烦,虽然看起来应该很简单。

数据库端点以这种格式收集此数据:

{
    "A": {
        "width": 120,
        "height": 130
    },
    "B": {
        "width": 350,
        "height": 240
    },
    "C": {
        "width": 680,
        "height": 160
}

我想做的就是将字母与各自的宽度和高度相连,然后将所有组推入一个数组,并将其设置为等于数据'所以我可以打电话给数据'程序中的任何地方都可以使用它,如下所示:

    var data = [{
    "id" : "A",
    "width": 120,
    "height": 130
}, {
    "id" : "B",
    "width": 350,
    "height": 240
}, {
    "id" : "C",
    "width": 680,
    "height": 160
}];

   // somewhere else in the file
  // data[0].end === 150

最简单的方法是什么?

谢谢!

2 个答案:

答案 0 :(得分:2)

Here's a fiddle.

var junk = {
    "A": {
        "width": 120,
        "height": 130
    },
    "B": {
        "width": 350,
        "height": 240
    },
    "C": {
        "width": 680,
        "height": 160
        }
};
var data = [];
for (var property in junk) {
    if (junk.hasOwnProperty(property)) {
        data.push({
            name:property,
            end: junk[property].width,
            start:junk[property].height
        });
    }
}
console.log(data);

答案 1 :(得分:0)

鉴于您要从Firebase检索数据,您将在所谓的DataSnapshot中获取数据。该类有一个方便的forEach()方法,允许迭代其子代:

snapshot.forEach(function(child) {
    data.push({
        name: child.key(),
        end: child.val().width,
        start: child.val().height
    });
})

我从Pamblam的答案中采用了startend的逻辑,因为我不明白这是如何工作的。