请问我下面的规则是哪里出了问题,一直报 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"
}
也不知道问题出在哪里了,反正 用下面的方法解决了:
{ "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
get(`database.manager.xxx`) get 函数是查找 manager 集合下 _id 为 xxx 的数据 所以传入 auth.openid 找不到对应的数据,要使用ce8xxxxx
遇到同样问题
安全规则设定ismanagers后,创建者和管理员查询可读写
前端where如何写,请各位大佬给几个例子