报个Bug,关于数据库安全规则的
发布于 6 年前 作者 vjin 5888 次浏览 来自 官方Issues

将样例文档中的规则,应用到我自己数据库的表,提示规则有误。

规则:
{
  "read": "true",
  "delete": "get(`database.user.${id}`).isManager"
}

ERROR:Database Modify Security Rule Error:, Error: InvalidParameter, rule invalid (d94caf1f-7a8c-485c-a473-b81ecbd87fa0)

1 回复

又发现官方doc中的一个示例的问题,做了2个修改能够成功了:

1.将get中的’改为`

2.需要判断isManager==true

原示例:
{
  "read": true, // 公有读
  "create": "doc.publisher == auth.openid", // 都可以发文章,但对数据一致性校验,要求 publisher 为发布者 openid
  "update": "doc.publisher == auth.openid || get('database.user.${auth.openid}').isManager", // 仅发布者或管理员可以更新
  "delete": "doc.publisher == auth.openid || get('database.user.${auth.openid}').isManager", // 仅发布者或管理员可以删除
}
修改后:
{
"read": true,
"write": "get(`database.user.${auth.openid}`).isManager == true",
}
回到顶部