我的firebase结构如下:

javascript - 如何在Firebase中遍历快照-LMLPHP

以下代码在选择框(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/

10-11 09:33