我正在努力解决看似非常微不足道的任务。在进行简单查询时,我收到来自Firebase的以下警告:
查询:
admin.database().ref('/dispatch/')
.orderByChild('shipmentKey')
.equalTo(shipmentKey)
.once('value')
.then(
警告:
FIREBASE警告:使用未指定的索引。考虑添加" .indexOn":" shipmentKey"在/向您的安全规则发送以获得更好的性能
我的database.rules.json看起来像这样:
{
"rules": {
"dispatch": {
".indexOn": "shipmentKey"
}
}
}
并且还尝试过:
{
"rules": {
"dispatch": {
".indexOn": ["shipmentKey"]
}
}
}
我已经阅读了有关此主题的所有其他stackoverflow问题,似乎无法摆脱我们的项目警告,我们将非常感谢任何帮助。
更新06/22/2017
我已经解决了这个问题,而且非常简单。事实证明,firebase部署实际上并没有部署数据库规则,因此没有上传database.rules.json。我只是运行以下命令:
firebase deploy --only database
现在一切都很好!感谢Bob Snyder帮助指出这一点。希望这可以帮助其他人!
答案 0 :(得分:0)
如果您有多个索引,则需要将所有索引放在方括号中,用逗号分隔。
{
"rules": {
"dispatch": {
".indexOn": ["shipmentKey"]
}
}
}