如何从数组中只获取一个元素(firebase数据库,nodejs)

时间:2016-12-10 23:38:02

标签: javascript node.js firebase

如果我使用limitToLast(1),那么我仍然会得到一个具有一个键值对的对象。要获得该值,我使用此代码:

db.ref('/myarray').limitToLast(1).once('value').then(function(snapshot) {

    var result = snapshot.val();
    var lastElem;
    var lastKey;

    for(var i in result) {
        lastElem= result[i];
        lastKey = i;
        break;
    }

    ...

});

它有效,但我认为我做错了。但是,在文档中没有找到更好的解决方案。我该如何只加载一个元素?

数据库看起来像这样: array

1 个答案:

答案 0 :(得分:3)

使用Firebase查询获取子项时,请使用"child_added"事件:

db.ref("/myarray")
  .orderByKey() // order by chlidren's keys
  .limitToLast(1) // only get the last child
  .once("child_added", function(snapshot) {
    var key = snapshot.key;
    var val = snapshot.val();
    ...
  });