我正在使用以下查询创建条目
var newMessageRef = friendlyChat.database.ref().child('dinos').push()
newMessageRef.set({
height: Math.round(100 * Math.random())
});
我的firebase规则是
{
"rules": {
"dinos": {
"$messageId": {
".indexOn": "height"
},
".read": "auth !== null",
".write": "auth !== null"
}
}
}
在网络浏览器上,我发出以下查询
friendlyChat.database.ref('dinos').orderByChild('height').startAt(70).limitToLast(1).on('child_added', (d)=>console.log(d.val()))
我在控制台中获得正确的输出,如下所示
{height: 99}
但是,当我检查控制台时,会看到从服务器下载的整个节点,如下所示。此外,还有添加.indexOn的警告
Firebase规则或查询中有问题吗?
最佳答案
解决indexon在更高级别的节点上。
"dinos": {
".indexOn": "height",
".read": "auth !== null",
".write": "auth !== null"
},