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
}
});
我想根据多个值对查询进行排序。问题是,我不能 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
}
});