如何为Firebase实时数据库所有用户的Dislikes路径配置索引
Firebase Realtime Database 按值过滤Dislikes时的通用索引配置
你遇到的问题是因为硬编码特定用户ID的索引仅对该用户生效,其他用户的动态路径无法匹配。解决方法是在安全规则里使用通配符,为所有用户的Dislikes节点统一配置索引:
正确的安全规则配置
在Firebase控制台的数据库规则中,修改为以下内容:
{ "rules": { "users": { "$userid": { "Dislikes": { ".indexOn": ".value" } } } } }
规则说明
$userid是Firebase规则的通配符,会匹配users节点下的任意子节点(即任意用户的ID)。- 这个配置会自动对所有用户的
Dislikes节点生效,包括新注册的用户,无需手动为每个用户添加索引规则。
验证查询
你的查询代码本身是正确的:
myRef.child(userid).child("Dislikes").orderByValue().equalTo(true).get().addOnSuccessListener { // 处理返回的结果 }
配置好上述索引后,就能正常过滤出Dislikes中值为true的数据,不会再触发索引未定义的错误。
内容的提问来源于stack exchange,提问作者Joshu
相关产品推荐
相关产品推荐

