freedemon
freedemon
  • 发布:2022-10-21 17:02
  • 更新:2022-10-21 17:22
  • 阅读:593

【已解决】unicloud 云对象访问uid用户表报权限校验未通过

分类:uniCloud

场景

在客户端使用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,客户端也已经登陆过。
2022-10-21 17:02 负责人:无 分享
已邀请:
freedemon

freedemon (作者) - 得于社区,反哺社区

读取用户表不能直接全部获取,需要用到field().get()来筛选字段,因为类似password这些字段是不能被读取的。

该问题目前已经被锁定, 无法添加新回复