【发布时间】:2021-04-08 10:40:40
【问题描述】:
我的 Firebase 控制台中有以下数据。
Firebase updated console image here
下面是上图的json形式。
"Messages" : {
"fYIM9pgpGdUpXtgrC3CavJyoN" : {
"1FH4baB4LLeKhPjUqiGvj5T6DU" : {
"chat": {// all chat here
},
"chattingid" : {
"chatid" : "1FH4baB4LLeKhPjUqiGvj5T6DU"
}
},
"TCAv2NtQYdUXkF2COgZslsXARh" : {
"chat": {//all chat here
},
"chattingid" : {
"chatid" : "TCAv2NtQYdUXkF2COgZslsXARh"
}
},
}
}
我正在使用以下查询来获取所有 chatid 并在我的控制台中两次未定义。
firebase.database().ref("Messages/"+suid).orderByChild("chattingid").on("child_added", function(data){
console.log("You are here to see "+ JSON.stringify(data.val().chatid));
})
如何使用 firebase 查询获取所有 chatid。是否可以?谢谢
【问题讨论】:
-
您在问题中包含了 JSON 树的图片。请将其替换为实际的 JSON 作为文本,您可以通过单击 your Firebase Database console 的溢出菜单 (⠇) 中的 Export JSON 链接轻松获得。将 JSON 作为文本使其可搜索,让我们可以轻松地使用它来测试您的实际数据并在我们的答案中使用它,总的来说这只是一件好事。
-
我有一段时间没有使用 firebase,但我倾向于说你应该用
.orderByChild("chattingid/chatid")替换你的.orderByChild("chattingid"),因为 chattingid 是一个对象并且您可能希望按 chatid 中的实际文本进行排序。另外,欢迎来到 SO! -
@user999 跟进@raphael 的回答,当您不确定为什么看到您所看到的内容时,最好的办法就是打印出
data并缩小从那里下来。如果data为您提供了一个数组,那就太好了,您可以从那里开始工作,并在迭代步骤中使用console.log 来获得您的目标。如果data未定义,那么您知道您的 firebase 查询中有一些需要解决的问题。 -
嗨 @FrankvanPuffelen Json 添加了。
-
好消息@nviens。嵌套属性确实需要在
orderByChild()调用中指定。你可能想把它写下来作为答案,这样我们就可以投票了。 ??????
标签: javascript firebase firebase-realtime-database