Firebase结构:
{
"config" : [
{
"config1" : {
"hideimage" : true
}
},
{
"config2" : {
"hideimage" : false
}
}
]
}
数据库规则:
"config": {
".indexOn": ["hideimage"]
}
我正在尝试使用以下方法来检索将hideimage属性设置为true的所有配置项:
admin.database().ref('config').orderByChild("hideimage").equalTo(true).once('value', result => {});
预期结果应为:
[{
"config1" : {
"hideimage" : true
}
}]
但是我正在获取一个空响应而没有收到任何错误。
答案 0 :(得分:2)
您的数据结构包含两个嵌套级别:
config1
和config2
如果您查看Firebase控制台,您会看到此信息,数据将显示如下:
{
"config" : {
"0": {
"config1" : {
"hideimage" : true
}
},
{
"config2" : {
"hideimage" : false
}
}
}
}
Firebase只能查询平面列表中的节点,而不能查询树。因此,根据您当前的数据结构,它只能在hideimage=true
下找到带有/config/0
的节点,而在所有/config
子节点下只能找到不能。
由于您已经唯一地命名了config1
和config2
,所以我认为该数组可能是一个错误,并且您确实在寻找:
{
"config": {
"config1" : {
"hideimage" : true
},
"config2" : {
"hideimage" : false
}
}
}
使用此数据结构,您的查询将起作用。