【问题标题】:Index error in query in FirebaseFirebase 查询中的索引错误
【发布时间】:2018-06-30 21:23:41
【问题描述】:
我在 Firebase 数据库中设置搜索查询时遇到问题。我把规则一直放在我的搜索中,但我总是得到索引错误。
下面是我的结构:
我的 Firebase 数据库结构:
我的查询:
https://zoome-production-users.firebaseio.com/country.json?orderBy="fullname"&equalTo="Vitor Darela"
错误:
{
"error": "索引未定义,添加 \".indexOn\": \"fullname\", for path \"/country\", to the rules"
}
【问题讨论】:
标签:
firebase
firebase-realtime-database
firebase-security
【解决方案1】:
在您的 REST 调用中,您对数据库中的 /country 运行查询。此查询检查/country 的每个直接子节点以查看它是否与您的过滤器匹配。在您的 JSON 数据中 /country/AD 没有属性 fullname,因此查询不会返回任何内容。即使您要添加错误消息告诉您的索引,它也不会返回任何内容。
您尝试执行的查询不适用于您当前的数据结构。您将需要修改数据结构以允许它。您似乎正在尝试查找具有特定名称的用户的国家/地区。要允许该查询,请添加一个额外的数据结构,该结构恰好包含:
"countries_by_fullname": {
"Vitor Darela": {
"AD": true
}
}
有了这个额外的结构,您只需阅读/countries_by_fullname/Vitor Darela就可以找到国家/地区列表。
另见: