收藏
回答

云开发数据库安全规则相关问题?

请问我下面的规则是哪里出了问题,一直报 errMsg: Permission denied

我想为order集合设定可以允许管理员和用户自己访问的规则,下面是order集合的规则

{
"read": "doc._openid == auth.openid || get(`database.manager.${auth.openid}`).isManager == true",
"write": "doc._openid == auth.openid || get(`database.manager.${auth.openid}`).isManager == true"
}

这是manager集合的结构

这是manager集合的规则

{
"read": true,
"write": "doc._openid == auth.openid"
}
最后一次编辑于  2021-01-12
回答关注问题邀请回答
收藏

3 个回答

  • CNSA
    CNSA
    2021-01-13

    也不知道问题出在哪里了,反正 用下面的方法解决了:

    {
    "read": "doc._openid == auth.openid || auth.openid in get(`database.manager.ce805e785f******0f1559`).managers",
    "write": "doc._openid == auth.openid || auth.openid in get(`database.manager.ce805e785f******10f1559`).managers"
    }
    


    其中“ce805e785f******0f1559”为 manager集合的索引_id


    2021-01-13
    有用 1
    回复 1
    • 奇
      2021-03-12
      你好,那么这个查询条件 where({    })内容怎么写呢,因为where里面要传入 _openid 啊。
      2021-03-12
      回复
  • 吃包子不吐包子皮
    吃包子不吐包子皮
    2021-02-25
    get(`database.manager.xxx`)
    get 函数是查找 manager 集合下 _id 为 xxx 的数据 所以传入 auth.openid 找不到对应的数据,要使用ce8xxxxx
    
    2021-02-25
    有用 1
    回复
  • 琥珀
    琥珀
    2021-11-01

    遇到同样问题

    安全规则设定ismanagers后,创建者和管理员查询可读写

    前端where如何写,请各位大佬给几个例子

    2021-11-01
    有用
    回复
登录 后发表内容
问题标签