我想根据多个值来排序查询。问题是,我无法选择对象键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()
返回正确的对象:
TRAVEL OBJ: {
"-KKiZKAVH0-QulKnThhF" : {
"date" : 1466439009,
"dest" : 1,
"fbKey" : "-KKiZKAVH0-QulKnThhF",
"type" : 1
}
}
第二个:TRAVEL TYPE: undefined
任何想法,我犯了错误?
答案 0 :(得分:3)
使用.forEach()
DataSnapshot
方法
snapshot.forEach(function(snap) {
var key = snap.key;
if (key === travelType) {
// Do stuff
}
});
答案 1 :(得分:2)
由于您将检索多个对象,因此需要对它们进行迭代以获取每个对象的值。
for (var key in travel) {
console.log("TRAVEL OBJ: " + util.inspect(travel[key], false, null));
console.log("TRAVEL TYPE: " + travel[key].type);
}