从Firebase快照获取一系列项目

时间:2017-01-02 13:34:10

标签: javascript arrays firebase firebase-realtime-database

我尝试使用在页面加载时生成的快照从Firebase数据库中获取一系列项目。我已经将每个对象的值添加到数组中,现在我尝试将每个对象的项目推送到另一个带有for循环的数组中。

但是当我创建第二个数组时,其中的项目比快照中的对象多。

我想知道如何解决这个问题。任何帮助都是极好的。感谢。

代码:

var ref = firebase.database().ref().child('/scenes/' + projId).orderByChild('wordcount');
ref.once('value',function(snap) {
    snap.forEach(function(item) {
        var itemVal = item.val();
        keys.push(itemVal);
        for (i=0; i < keys.length; i++) {
            counts.push(keys[i].wordcount);
        }
    });
});

3 个答案:

答案 0 :(得分:10)

每次向键添加内容时,都会再次循环。你应该把它移到你的forEach之外:

<?php
echo "hello world";
?>

答案 1 :(得分:3)

您可以只使用lodash _.toArray()

_.toArray(snapshot.val())会将您的对象转换为对象数组。

Documentation

答案 2 :(得分:1)

@mike axis:只需在forEach中添加return true即可。它对我有用......;)

相关问题