云开发仅创建者可读写小程序端为什么匹配_openid而不是匹配userInfo.openId?
发布于 7 年前 作者 tao47 13734 次浏览 来自 问答
  • 集合权限:仅创建者可读写

  • 云函数端:

    创建一条记录如下:

_id: 1234567890,
text: '测试',
userInfo: {
  openId: '123456',
  userId: '345566'
}
  • 小程序端:
let res = await db.collection('test').count();
console.log(res); // {total: 0, errMsg: "collection.count:ok"}

我的问题是为啥就返回total:0呢,我明明有一条的,后台我尝试在记录中添加了一个字段 _openid ,果然就把这条记录查出来了。

所以问题就在于 云函数端 创建的记录默认添加的用户身份信息字段变成了 userInfo.openId 格式,但是 小程序端 在去匹配的时候依然依赖 _openid ,导致两端数据不匹配。

请问我该怎样修改才能让小程序端也能访问到呢?

这算不算小程序端权限的bug?

2 回复

云函数不会主动创建_openid,你要自己写个_openid字段

自定义读写权限

doc._openid == auth.openid || doc.userInfo.openid == auth.openid

https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/database/security-rules.html#%E4%B8%8E%E5%9F%BA%E7%A1%80%E6%9D%83%E9%99%90%E9%85%8D%E7%BD%AE%E7%9A%84%E5%AF%B9%E6%AF%94

若认为该回答有用,给回答者点个[ 有用 ],让答案帮助更多的人

回到顶部