Javascript Firebase检索嵌套数据
我在试图从Firebase取回时遇到了一些麻烦。基本上我的分组表是这样的: 在这种情况下,在Javascript Firebase检索嵌套数据,javascript,json,firebase,firebase-realtime-database,nosql,Javascript,Json,Firebase,Firebase Realtime Database,Nosql,我在试图从Firebase取回时遇到了一些麻烦。基本上我的分组表是这样的: 在这种情况下,在组ID-KpFibCHjJ1xpfLd07WJ下,有一个帐户ID-KpFiX2L7ENt6EBgrB0S。按权利将有不止一个帐户,我仍然在数据插入工作 我试图检索特定组下帐户的唯一推送ID列表: var accounts = []; var query = firebase.database().ref('groups').orderByChild('address').equalTo('Blk
组ID-KpFibCHjJ1xpfLd07WJ
下,有一个帐户ID-KpFiX2L7ENt6EBgrB0S
。按权利将有不止一个帐户,我仍然在数据插入工作
我试图检索特定组下帐户的唯一推送ID列表:
var accounts = [];
var query = firebase.database().ref('groups').orderByChild('address').equalTo('Blk 165');
query.once( 'value', data => {
data.forEach(userSnapshot => {
let groupData = userSnapshot.val();
console.log(groupData );
accounts.push(groupData .accounts);
for(var i = 0; i < accounts.length; i++){
console.log(accounts[i]);
}
});
});
关于如何提取特定子项下的唯一推送ID(-KpFiX2L7ENt6EBgrB0S)列表并将其存储到临时数组中,您有什么想法吗?我并不真正使用Firebase,但听起来您好像在尝试从对象数组中提取特定键?你可以这样做,让你走上正确的道路,但我仍然不确定这是否是你所要求的 我已经创建了一组愚蠢的数据,试图匹配您得到的结果
var arr = [
{
"-KpFiX2L7ENt6EBgrB0S" : true
},
{
"-MXDOFKFFM3738FJF" : true
}
]
// Will store the info you want
var arr2 = []
for(var i = 0; i < arr.length; i++) {
var temp = Object.keys(arr[i]).toString()
arr2.push(temp)
}
console.log(arr2) // ["-KpFiX2L7ENt6EBgrB0S", "-MXDOFKFFM3738FJF"]
var-arr=[
{
“-KpFiX2L7ENt6EBgrB0S”:真
},
{
“-MXDOFKFFM3738FJF”:真
}
]
//将存储您想要的信息
var arr2=[]
对于(变量i=0;i
这里还有一个可行的方法。诀窍是
Object.keys(groupData.accounts)
:
是的,这就是我想做的。但如何将firebase返回的数据填充到数组中?是这样的:var arr=groupData.accounts;那可能行得通。如果您使用console.log just groupData.accounts,它会打印出什么?当我在控制台打印时,它只显示arr[object object],看起来它是一个数组,所以您不应该将一个数组推入另一个数组。也许只是将帐户重新分配给“accounts=groupData.accounts”之类的东西。然后以类似于我在解决方案中所做的方式遍历帐户。让我知道这是否有帮助。事实上,这可以通过弗兰克建议的一行完成!非常感谢你的帮助!我明白了,我明白了。这很有魅力!非常感谢!!
var arr = [
{
"-KpFiX2L7ENt6EBgrB0S" : true
},
{
"-MXDOFKFFM3738FJF" : true
}
]
// Will store the info you want
var arr2 = []
for(var i = 0; i < arr.length; i++) {
var temp = Object.keys(arr[i]).toString()
arr2.push(temp)
}
console.log(arr2) // ["-KpFiX2L7ENt6EBgrB0S", "-MXDOFKFFM3738FJF"]
var accounts = [];
var query = firebase.database().ref('groups').orderByChild('address').equalTo('Blk 165');
query.once( 'value', data => {
data.forEach(userSnapshot => {
let groupData = userSnapshot.val();
let accounts = Object.keys(groupData.accounts);
console.log(accounts);
});
});