收藏
回答

报个Bug,关于数据库安全规则的

框架类型 问题类型 终端类型 AppID 环境ID 基础库版本
小程序 Bug 工具 wx84112fe3799abc6d production-2z0an 2.10.2

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

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

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

回答关注问题邀请回答
收藏

1 个回答

  • 李健 Kyle
    李健 Kyle
    2020-03-04

    又发现官方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",
    }
    
    2020-03-04
    有用 3
    回复 1
    • 奇
      03-13
      你好,我想知道这个write的where条件怎么在where查询中传入_openid,因为不传入openid,显示被数据库拒绝请求了
      03-13
      回复
登录 后发表内容
问题标签