在我的应用程序中,我使用下面的代码检查子消息是否存在。
this.firechats.child(uid).child(touid).orderByChild("time").startAt(time).on('value', (snapshot) => {
var temp = snapshot.val();
for (var tempkey in temp) {
console.log("new message exists")
console.log(temp[tempkey].message);
}
console.log(snapshot.hasChild("message"))
if(snapshot.child("message").exists()){
//do something
}
});
实际上有一条消息“ hello”,日志输出也将其打印出来,但是检查功能始终返回false。怎么了?
new message exists
hello
false
答案 0 :(得分:1)
snapshot
包含直接子级,即添加到那里的消息的推送ID。因此,您可以期望snapshot.child('-Lp_cm...')
存在。如果您想得到那个孩子的消息,则必须更深入:snapshot.child('-Lp_cm...').child('message')
听起来像您实际上是要遍历快照中的消息列表,类似于您对for (var tempkey in temp)
进行的操作,然后挖掘这些快照的子级。