收藏
回答

云开发数据库新安全规则这样写有什么问题吗?


  "read": "doc.type=='technician' || doc._openid == auth.openid   || auth.openid in get(`database.app.technician`).openidList " ,

当验证 doc.type=='technician' 这段的时候说是没有权限,我确定doc.type是'technician'

最后一次编辑于  2020-01-19
回答关注问题邀请回答
收藏

1 个回答

  • 吃包子不吐包子皮
    吃包子不吐包子皮
    2020-01-19

    doc.type=='technician' 这个条件要求 查询的时候 要显式添加条件, db.collection('xxx').where({type:'technician'}).get()

    2020-01-19
    有用
    回复 7
    • 一点客服
      一点客服
      2020-01-20
      添加了但是导致 doc._openid == auth.openid 又无权限了
      2020-01-20
      回复
    • 一点客服
      一点客服
      2020-01-20
      db.collection('xxx').where({
                _openid: _.in(_openidList),
                type:'technician',
              }).get()
      2020-01-20
      回复
    • 一点客服
      一点客服
      2020-01-20回复一点客服
      _openidList当中有些doc.type并不是'technician'
      2020-01-20
      回复
    • 一点客服
      一点客服
      2020-01-20
      用or解决了,原来新的安全规则是先查询后判断有无权限
      2020-01-20
      回复
    • 吃包子不吐包子皮
      吃包子不吐包子皮
      2020-01-20回复一点客服
      使用where查询时要求查询条件是规则的子集,  在查询前会解析规则与查询条件进行校验。行为可能比较像,但不是先查询。
      2020-01-20
      回复
    查看更多(2)
登录 后发表内容
问题标签