Firebase Web从autoChildID获取第一个子数据

时间:2017-09-22 13:19:35

标签: javascript firebase web firebase-realtime-database

我的数据库如下所示:

Database image

我正在尝试获取unassignedBeaconIDs的第一个孩子,阅读数据beaconIDmajorminor并将其从unassignedBeaconIDs中删除。

这是我的代码:

var refBeaconID = firebase.database().ref(pathToBeaconIDs).limitToFirst(1);
refBeaconID.once('value', function(snap)
{
    var firstItem = snap.val(); // first item, in format {"<KEY>": "<VALUE>"}
    console.log("The first item");
    console.log(firstItem.beaconID);
    refBeaconID.child(firstItem.key).removeValue;
});

问题是childAutoID值。结果总是得到不确定。

1 个答案:

答案 0 :(得分:0)

对Firebase数据库执行查询时,可能会有多个结果。因此快照包含这些结果的列表。即使只有一个结果,快照也会包含一个结果的列表。

因此,您需要在回调中循环遍历快照的子项:

var refBeaconID = firebase.database().ref(pathToBeaconIDs).limitToFirst(1);
refBeaconID.once('value', function(snap)
{
    snap.forEach(function(child) {
        var firstItem = child.val();
        console.log("The first item");
        console.log(firstItem.beaconID);     
    });
});

我不完全确定refBeaconID.child(firstItem.key).removeValue;转换为什么,但是如果你想在记录它后删除它:child.ref.remove();