场景
在客户端使用uid通过云对象获取uni-id-users表的数据,结果报“权限未通过”
代码
// 客户端
const { uid } = uniCloud.getCurrentUserInfo()
const person = uniCloud.importObject('person')
person.getWxInfo({uid}).then(res => {
console.log(res);
})
// 云对象
async getWxInfo({ uid }) {
const dbJQL = uniCloud.databaseForJQL({
// 获取JQL database引用,此处需要传入云对象的clientInfo
clientInfo: this.getClientInfo()
})
const wxInfoRes = await dbJQL.collection('uni-id-users').where(`_id=='${uid}'`).get() // 直接执行数据库操作
// 返回结果
return {
errCode: 0,
errMsg: '',
mainInfo: wxInfoRes.data[0]
}
}
附加信息
- 在JQL查询器查询上述jql可以获取到数据
- 云函数已经部署,本地云函数和云端云函数都已经测试过,结果一样
- uni-id-users表的schema没有改过,read权限为true,客户端也已经登陆过。
1 个回复
freedemon (作者) - 得于社区,反哺社区
读取用户表不能直接全部获取,需要用到field().get()来筛选字段,因为类似password这些字段是不能被读取的。