我正在使用以下查询创建条目

var newMessageRef = friendlyChat.database.ref().child('dinos').push()
newMessageRef.set({
    height: Math.round(100 * Math.random())
});


javascript - Firebase服务器端过滤无法与indexOn一起使用-LMLPHP

我的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规则或查询中有问题吗?

javascript - Firebase服务器端过滤无法与indexOn一起使用-LMLPHP

最佳答案

解决indexon在更高级别的节点上。

    "dinos": {
      ".indexOn": "height",
      ".read": "auth !== null",
      ".write": "auth !== null"
    },

07-27 14:07