我对firebase的索引有些疑问。这是我的firebase结构:

merchants {
    merchantID1 : {
        merchantName :
        branches : {
            branchID1 : {
                branchAddress :
            }
        }
    }
}


我在Firebase网站上的索引编制规则:

"merchants": {
      ".indexOn": ["merchantName"]
},


我从JavaScript获得了两个不同的orderByChild查询。一种是查询merchantName,另一种是branchAddress。在Firebase中添加indexOn merchantName rule后,警告消息消失了。但是,当我执行另一个查询branchAddress的功能时,我收到此警告消息:

FIREBASE WARNING: Using an unspecified index. Consider adding ".indexOn":
"branchAddress" at /merchants/-KpeV5_lnWA2Zd_g7x8C/branches to your security
rules for better performance


我实际上如何在孩子的不同级别上指定indexOn规则?

最佳答案

$childKey与任何子键匹配。因此,您必须在这里使用该概念。

将您的数据库规则更改为:

"merchants": {
    ".indexOn": ["merchantName"],
    "$merchantId": {/*This matches all keys*/
        "branches": {
            ".indexOn": ["branchAddress"]
        }
    }
}

07-26 01:27