Firebase - Object.key returns 未定义

Firebase - Object.key returns undefined

我想根据多个值对查询进行排序。问题是,我不能 select 对象键 type 因为我这样做时得到 undefined

var filterDataAccordingToDate = function(ref, startTime, endTime, travelType) {

            ref.orderByChild('date')
            .startAt(startTime).endAt(endTime)
            .once('value', function(snapshot) {
                var travel = snapshot.val();

                console.log("TRAVEL OBJ: " + util.inspect(travel, false, null));
                console.log("TRAVEL TYPE: " + travel.type);

                if (travel.type == travelType) {
                    // DO STUFF
                }

            });
    }

第一个console.log()returns正确的宾语:

TRAVEL OBJ: {
  "-KKiZKAVH0-QulKnThhF" : {
    "date" : 1466439009,
    "dest" : 1,
    "fbKey" : "-KKiZKAVH0-QulKnThhF",
    "type" : 1
  }
}

第二个:TRAVEL TYPE: undefined

知道吗,我哪里弄错了?

由于您将检索多个对象,因此您需要遍历它们以获取每个对象的值。

for (var key in travel) {
      console.log("TRAVEL OBJ: " + util.inspect(travel[key], false, null));
      console.log("TRAVEL TYPE: " + travel[key].type);
}

DataSnapshot

上使用.forEach()方法
snapshot.forEach(function(snap) {
  var key = snap.key;
  if (key === travelType) {
    // Do stuff
  }
});