我的firebase结构如下:
以下代码在选择框(2019/9/7 AMS MK7777)中搜索用户选择的文本并返回ulds
对象
FBLoad: function(){
console.log($(".text").text())
var ref = firebase.database().ref("flights");
ref
.orderByChild("queryDes")
.equalTo($(".text").text())
.once("child_added", function(snapshot) {
console.log(snapshot.val().ulds);
});
}
我要完成的是对象的数据由
ulds
对象的数据更新需要更新的对象如下:
var positions = {
"A": {h_arm:14645, "occupied":0, "ULD":"", "DEST":"", "CNTR":"", "WGHT":0, "TYPE":"", "SHC":[], "RMRK":""},
"BR": {h_arm:16905, "occupied":0, "ULD":"", "DEST":"", "CNTR":"", "WGHT":0, "TYPE":"", "SHC":[], "RMRK":""},
"C": {h_arm:19165, "occupied":0, "ULD":"", "DEST":"", "CNTR":"", "WGHT":0, "TYPE":"", "SHC":[], "RMRK":""},
"R": {h_arm:19165, "occupied":0, "ULD":"", "DEST":"", "CNTR":"", "WGHT":0, "TYPE":"", "SHC":[], "RMRK":""}
}
最终结果应该是这样的:
var positions = {
"A": {h_arm:14645, "occupied":0, "ULD":"", "DEST":"", "CNTR":"", "WGHT":0, "TYPE":"", "SHC":[], "RMRK":""},
"BR": {h_arm:16905, "occupied":0, "ULD":"PMC12345QR", "DEST":"DOH", "CNTR":"Q5", "WGHT":2500, "TYPE":"C", "SHC":["RFL","RCM"], "RMRK":"OHG75CMF"},
"C": {h_arm:19165, "occupied":0, "ULD":"", "DEST":"", "CNTR":"", "WGHT":0, "TYPE":"", "SHC":[], "RMRK":""},
"R": {h_arm:19165, "occupied":0, "ULD":"PMC77785QR", "DEST":"DOH", "CNTR":"Q5", "WGHT":3540, "TYPE":"C", "SHC":["PIL"], "RMRK":"IND75CMA"}
}
我找不到遍历
ulds
对象的方法 最佳答案
要遍历ulds
,请尝试以下操作:
once("value", function(snapshot) {
snapshot.forEach(function(childSnapshot){
childSnapshot.forEach(function(uldSnapshot){
uldSnapshot.forEach(function(nestedUldSnapshot){
console.log(nestedUldSnapshot.val());
});
});
首先,使用事件
value
检索数据,然后使用forEach()
检索随机ID下的数据。然后使用另一个forEach()
访问ulds
对象中的数据。关于javascript - 如何在Firebase中遍历快照,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58049503/