我正在使用REST API来查询Firebase。
规则如下:
{
"rules": {
".read": true,
".write": true,
"user": {
".indexOn": "type"
}
}
}
使用GET方法查询以下网址时
https://exampleurl.firebaseio.com/user/9001.json
回应:
{
"name": "Rohit",
"person": {
"-KLk3p3kUWg2j9p16kTw": {
"mobile": "9002",
"name": "Adarsh",
"type": "D"
},
"-KLk4x2V_hfZwlsh6PMo": {
"mobile": "9003",
"name": "Manas",
"type": "D"
},
"-KLk5-UPefdSMarC5VCQ": {
"mobile": "9004",
"name": "Sagar",
"place": "thane",
"type": "C"
}
}
}
在GET方法中使用过滤查询时出现错误
https://exampleurl.firebaseio.com/user/9001.json?orderBy="type"&startAt="D"
回复:
{
"error": "Index not defined, add \".indexOn\": \"type\", for path \"/user/9001\", to the rules"
}
我尝试使用以下规则。但是firebase不允许我保存。
{
"rules": {
".read": true,
".write": true,
"user/9001": {
".indexOn": "type"
}
}
}
Another question谈到倾听变革。我的问题是关于索引。
答案 0 :(得分:0)
在搜索并花了很长时间解决问题后,能够找出在Firebase中索引第二个节点的解决方案。
Firebase支持使用外卡进行索引。
新规则解决了我的问题:
{
"rules": {
".read": true,
".write": true,
"user": {
"$person":{
".indexOn": "type"
}
}
}
}