如BUG 描述
Neveregret
- 发布:2021-08-12 22:51
- 更新:2021-12-07 11:10
- 阅读:1099
产品分类: uniCloud/App
操作步骤:
预期结果:
如BUG 描述
如BUG 描述
实际结果:
如BUG 描述
如BUG 描述
bug描述:
HBX版本为3.1.22,uni-id为最新版,使用的最新的uni-id-users表schema
使用联表进行聚合操作,主表为自定义的表,副表为uni-id-users,主表副表所有权限设为true。主表foreignKey设置如下:
"user_id": {
"foreignKey": "uni-id-users._id"
}
聚合代码如下:
db.collection('tuan,uni-id-users')
.aggregate()
.geoNear({
distanceField: 'distance', // 输出的每个记录中 distance 即是与给定点的距离
spherical: true,
near: new db.Geo.Point(res.longitude, res.latitude),
distanceMultiplier: 1 / 1000, //将米换算为千米
key: 'OriginLocation',
includeLocs: 'OriginLocation',
})
.project({
"user_id.password":0
})
.end()
报错为:PERMISSION_ERROR, [tuan.user_id.password.read]权限校验未通过
我已经用project过滤掉了password,为什么还报权限未通过?请问该如何解决该问题?
4 个回复
Neveregret (作者)
这是bug吗?需要使用geonear对表“tuan”中的数据从近到远排序,又需要读取表“uni-id-users”里面的用户信息,该如何实现?呢?
Neveregret (作者)
使用云函数操作云数据库能否实现这个场景?
DCloud_uniCloud_WYQ
云函数中可以,clientDB中不行,geoNear只能在第一阶段,可能会影响权限判断,所以project内的字段过滤不会对权限校验生效
LikeU恋爱交友 - LikeU恋爱交友
最新版 HX也会报这个错,反复测试了好久,这个方案可行:
1 除了要新版
2 需要指定字段,不能带password: jql要这样写: db.collection('uni-id-users').field("_id,ali_openid,apple_openid,avatar,comment,department_id,email,email_confirmed,gender,inviter_uid,nickname,status,username,wx_openid,wx_unionid,info").where({wx_unionid:uni.getStorageSync('openid')}).get({getOne:true}).then((res) => {
----以上在百度和微信小程序中测试成功,这个问题之前没有出现,应该是哪方改版之后把之前成功发布的搞报错了