我的数据库如下所示:
我正在尝试获取unassignedBeaconIDs
的第一个 child ,读取数据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 值上。结果我总是得到未定义的结果。
最佳答案
当您对 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。删除();
。
关于javascript - Firebase Web 从 autoChildID 获取第一个子数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46365794/