从Firebase数据库中的此查询中获取元素的键

时间:2017-07-03 05:20:58

标签: javascript firebase firebase-realtime-database

我有Firebase数据库的下一个查询

firebase.database().ref('users/'+userId+ubication)
    .orderByChild('timestamp')
    .equalTo(parseInt(timeStamp))
    .once('value')
    .then(snapshot=>{
        console.log(snapshot);
    }
);

此查询返回我唯一的一个元素,我需要从数据库中删除此元素,但我不知道如何获取它的密钥!

1 个答案:

答案 0 :(得分:2)

作为一般做法,当您获得包含子项的快照时,可以使用forEach循环访问它们。在此之后,您可以使用.key从子元素获取密钥。无论查询返回的子元素的数量是多少,都可以这样做。

您可以这样做: -

firebase.database().ref('users/'+userId+ubication)
    .orderByChild('timestamp')
    .equalTo(parseInt(timeStamp))
    .once('value')
    .then(snapshot=>{
        console.log(snapshot);
        var arrayOfKeys = []
        snapshot.forEach(function(child_element){
        arrayOfKeys.push(child_element.key)
    })
}
);

要删除子元素,您现在可以使用该键引用该路径。此外,我强烈建议您彻底了解Promises和异步调用,因为当您处理node.js中的数据列表时,它们本质上非常重要!