Firebase RTDB配置.indexOn规则后仍触发索引警告问题咨询
问题原因
你的索引规则配置层级与实际查询场景不匹配:
你当前在/groups节点配置了.indexOn: ["leadPropertyInformations/status"],该配置仅对直接查询/groups节点、按子节点下的leadPropertyInformations.status字段过滤的场景生效,和你实际的查询逻辑不符。
你实际的查询路径为/groups/{分组ID}/leadPropertyInformations,是在该路径下按子节点的status字段过滤,因此需要在/groups/$groupId/leadPropertyInformations节点层级配置对应索引。
正确的规则配置
{ "rules": { ".read": "auth != null", ".write": "auth != null", "groups": { "$groupId": { "leadPropertyInformations": { ".indexOn": ["status"] } } } } }
注意事项
- 规则修改后需等待1-2分钟待规则全局部署生效,再发起查询即可消除警告。
- 若后续需要在
leadPropertyInformations节点下按其他字段过滤,直接将对应字段名添加到.indexOn数组中即可。
内容的提问来源于stack exchange,提问作者Sampath
相关产品推荐
相关产品推荐

