我的数据库如下所示:
我正在尝试获取unassignedBeaconIDs
的第一个孩子,阅读数据beaconID
,major
,minor
并将其从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值。结果总是得到不确定。
答案 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();
。