收藏
回答

数据库安全规则配置有问题?

{ "read": true, "write": "auth.openid == doc._openid || auth.openid in get('database.seller.${doc._id}').worker", }

这是我配置的安全规则

这是我在数据库中保存的openid信息

  db.collection('seller').where({
      _id'21ded5cb5ff88422044c0eb27162b0dc'
    }).update({
      data: {
        ifOpening: true
      }
    }).then(res => {
      console.log(res)
    }).catch(err => {
      console.log(err)
    })
为什么用下面这个查询会报权限的错误呢
回答关注问题邀请回答
收藏

1 个回答

  • 吃包子不吐包子皮
    吃包子不吐包子皮
    2021-02-25

    write 规则,

    auth.openid == doc._openid 因为查询条件中无openid 所以校验失败

    auth.openid in get('database.seller.${doc._id}').worker 使用了变量动态查询, get 的部分应该是 get(`database.seller.${doc._id}`), 注意使用反引号

    2021-02-25
    有用 1
    回复 1
    • 烧饼
      烧饼
      2021-06-17
      对的,我就是被这个单引号给搞岔气了,${}是模板语法,如果微信没做检查的话,单引号会失效的
      2021-06-17
      回复
登录 后发表内容
问题标签