var data;
var starCountRef = firebase.database().ref();
starCountRef.on("value",snap =>{
data = snap.val();
console.log(data);
uid = //some uid here;
checkifplaying(data,uid);
});
function checkifplaying(data,uid){
var flag1 = 0;
var pos = -1;
console.log(data);
data.Users.forEach(function(user){
if(uid == user.uid){
flag1 = 1;
which = data.User;
}
});
if(flag1 == 0){
$("#contest3").show();
}
else if(flag1 == 1){
$("#contest1").show();
$("#contest2").show();
}
}

我的Firebase数据库看起来像这样:
我正在尝试使用forEach循环迭代Users子项
data.Users.forEach(function(user){
})
,但它的错误为data.Users.forEach is not a function
。 data包含通过快照获取的整个db。
它包含主对象。
请告诉我如何重复这个。
答案 0 :(得分:2)
您正在将快照值传递给您的函数。您应该传递快照对象。像这样:
starCountRef.on("value",snap =>{
//data = snap;
console.log(snap.val());
uid = //some uid here;
checkifplaying(snap,uid);
});
在你的checkifplaying功能上:
function checkifplaying(data,uid){
var flag1 = 0;
var pos = -1;
console.log(data);
data.child('Users').forEach(function(user){
if(uid == user.uid){
flag1 = 1;
which = data.User;
}
});
if(flag1 == 0){
$("#contest3").show();
}
else if(flag1 == 1){
$("#contest1").show();
$("#contest2").show();
}