gpt4 book ai didi

javascript - 如何在云函数中使用 indexOn 从实时数据库中检索数据

转载 作者:行者123 更新时间:2023-11-30 14:21:06 27 4
gpt4 key购买 nike

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
}
}]

但我正在检索一个空响应而没有收到任何错误。

最佳答案

您的数据结构包含两个嵌套级别:

  1. 你有一个数组
  2. 在第一个数组元素中,您有 config1config2

如果您查看 Firebase 控制台,您可以看到这一点,您的数据将在其中显示如下:

{
"config" : {
"0": {
"config1" : {
"hideimage" : true
}
},
{
"config2" : {
"hideimage" : false
}
}
}
}

Firebase 只能查询平面列表中的节点,不能查询树中的节点。所以根据你当前的数据结构,它只能在/config/0下找到hideimage=true的节点,在所有/下配置 child 。

由于您已经将 config1config2 命名为唯一的,我认为该数组可能是一个错误,您真正在寻找:

{
"config": {
"config1" : {
"hideimage" : true
},
"config2" : {
"hideimage" : false
}
}
}

有了这个数据结构,您的查询就可以工作了。

关于javascript - 如何在云函数中使用 indexOn 从实时数据库中检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52733424/

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