我对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规则?
答案 0 :(得分:2)
$childKey
匹配任何子键。所以你必须在这里使用这个概念。
将数据库规则更改为:
"merchants": {
".indexOn": ["merchantName"],
"$merchantId": {/*This matches all keys*/
"branches": {
".indexOn": ["branchAddress"]
}
}
}