gpt4 book ai didi

firebase - 我添加到“安全和规则”中的 .indexOn 规则未得到考虑

转载 作者:行者123 更新时间:2023-12-02 22:11:08 27 4
gpt4 key购买 nike

我正在尝试在 Firebase 数据上设置自定义索引,以便对某些字段进行排序。

这是我的数据:

获取https://testindexon.firebaseio.com/.json

{
“键1”:{
“年龄”:80,
“名称”:“zabc”
},
“键2”:{
“年龄”:90,
“名称”:“defg”
},
“键3”:{
“年龄”:10,
“姓名”:“希克”
}
}

这是我的安全规则:

{
“规则”:{
“.read”:正确,
“.write”:正确,
“测试索引”:{
".indexOn": "年龄"
}
}
}

当我尝试按索引的“age”属性进行排序时,出现错误:

获取https://testindexon.firebaseio.com/.json?orderBy= “年龄”

错误 400(错误请求)

{
“错误”:“索引未定义”
}

我可以通过重写我的安全规则来解决 400 错误,如下所示:

{
“规则”:{
“.read”:正确,
“.write”:正确,
".indexOn": ["年龄", "姓名"]
}
}

但是当我尝试按其中一个属性排序时,没有发生任何特殊情况(结果未排序):

获取 ....firebaseio.com/.json?orderBy="age"

{
“键1”:{
“年龄”:80,
“名称”:“zabc”
},
“键2”:{
“年龄”:90,
“名称”:“defg”
},
“键3”:{
“年龄”:10,
“姓名”:“希克”
}
}

我错过了什么吗?我将不胜感激任何帮助。

最好,

状态变量

最佳答案

根据Firebase documentation on retrieving data through its REST API :

THE REST API RETURNS UNSORTED RESULTS

JSON interpreters do not enforce any ordering on the result set. While orderBy can be used in combination with startAt, endAt, limitToFirst, or limitToLast to return a subset of the data, the returned results will not be sorted. Therefore, it may be necessary to manually sort the results if ordering is important.

该文档中确实有一些示例和其他片段似乎表明并非如此。但上述说法是正确的。

请记住,orderBy 参数的用途不仅仅是返回有序结果。您还可以使用该方法来过滤结果,即

GET 'https://testindexon.firebaseio.com/.json?orderBy="age"&equalTo=90'

或者您会命令返回有限数量的结果:

GET 'https://testindexon.firebaseio.com/.json?orderBy="age"&limitToFirst=10'

因此,在这些情况下,子节点会在服务器上排序,然后进行过滤,但返回值将/可能仍然包含未确定顺序的剩余子节点。

关于firebase - 我添加到“安全和规则”中的 .indexOn 规则未得到考虑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29583177/

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