例如,通过以下代码查询修改记录,想要实现的效果,只有在白名单内的人才有权限修改。
db.collection('banner').where({
_openid: '{openid}', // 无论有没有这个参数,都无法实现想要的结果。加上这个,是因为文档说:查询更新语句都需明确指定 openid
id: event.id
}).update({
data: {
name: _.set('a')
}
}).then((result) => {
console.log(result);
});
数据库自定义权限为:
{
"read": true,
"write": "auth.openid in ['zzz','aaa']"
}
已经设置 read 为 true,但是通过 where 查询出来的结果为空。
即使 openid 不属于 zzz 和 aaa ,也都能成功的修改?
小程序端直接访问数据库 不需要在where里加openid 因为它默认会加入用户自己的openid;
关于write的语法不太清楚,但是可以有其他方法,新建一张表power叫权限表,有banner的_id和用户openid两个字段,先访问这张表询问是否有权限有权限在访问banner;这些操作建议放到云函数中执行,小程序端的话如果想破解的话总是有办法的