{ data = sn-6ren">
gpt4 book ai didi

javascript - 迭代具有非顺序 id 的 Firebase 子级

转载 作者:行者123 更新时间:2023-11-30 15:32:18 24 4
gpt4 key购买 nike

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 数据库如下所示:

enter image description here

我正在尝试使用 forEach 循环迭代用户子级

data.Users.forEach(function(user){
})

,但它给出了一个错误,因为 data.Users.forEach 不是一个函数。数据包含通过快照获取的整个数据库。它包含其中的主对象。

请告诉我如何迭代它。

最佳答案

您正在将快照值传递给您的函数。您应该改为传递快照对象。像这样:

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();
}

关于javascript - 迭代具有非顺序 id 的 Firebase 子级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42053859/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com