【发布时间】:2017-10-08 10:49:58
【问题描述】:
我正在为一项看似非常微不足道的任务而苦苦挣扎。执行简单查询时,我从 Firebase 收到以下警告:
查询:
admin.database().ref('/dispatch/')
.orderByChild('shipmentKey')
.equalTo(shipmentKey)
.once('value')
.then(
警告:
FIREBASE 警告:使用未指定的索引。考虑将 /dispatch 中的 ".indexOn": "shipmentKey" 添加到您的安全规则中以获得更好的性能
我的 database.rules.json 看起来像这样:
{
"rules": {
"dispatch": {
".indexOn": "shipmentKey"
}
}
}
并且也尝试过:
{
"rules": {
"dispatch": {
".indexOn": ["shipmentKey"]
}
}
}
我已经阅读了有关此主题的所有其他 stackoverflow 问题,并且似乎无法摆脱我们的项目的这个警告,任何帮助将不胜感激。
2017 年 6 月 22 日更新
我已经解决了这个问题,而且非常简单。事实证明,firebase deploy 实际上并没有部署数据库规则,因此 database.rules.json 没有被上传。我只是运行了以下命令:
firebase deploy --only database
现在一切正常!感谢 Bob Snyder 帮助指出这一点。希望这对其他人有帮助!
【问题讨论】:
-
您的规则看起来不错。您确定它们对数据库有效吗?当您在 Firebase 控制台中查看规则时,是否看到您发布的规则?
-
他们不在那里 Bob,不知道为什么,有什么想法吗?
-
我直接在 Firebase 控制台中编辑我的规则。您是否使用Firebase CLI 部署您的?鉴于您的规则很简单,您可以尝试使用 Firebase 控制台更新它们,看看是否能解决问题。我怀疑会的。不知道为什么 CLI 可能不适合您——没有使用过。
标签: firebase firebase-realtime-database firebase-security