Firebase数据库规则使用未指定的索引

时间:2017-05-09 23:42:03

标签: firebase firebase-realtime-database firebase-security

我正在努力解决看似非常微不足道的任务。在进行简单查询时,我收到来自Firebase的以下警告:

查询:

admin.database().ref('/dispatch/')
    .orderByChild('shipmentKey')
    .equalTo(shipmentKey)
    .once('value')
    .then(

警告:

  

FIREBASE警告:使用未指定的索引。考虑添加" .indexOn":" shipmentKey"在/向您的安全规则发送以获得更好的性能

我的数据库如下所示: enter image description here

我的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帮助指出这一点。希望这可以帮助其他人!

1 个答案:

答案 0 :(得分:0)

如果您有多个索引,则需要将所有索引放在方括号中,用逗号分隔。

{
  "rules": {
    "dispatch": {
      ".indexOn": ["shipmentKey"]
    }
  }
}