UNIAPP 云对象中使用数据库报“Error: 权限校验未通过,未能获取当前用户信息,当前用户为匿名身份,“错误

    getInitecode:async function(){
        const db=uniCloud.databaseForJQL()
        const id=await this.uniID.checkToken(this.getUniIdToken())
        const res=await db.collection('uni-id-users').where('_id=="'+id.uid+'"').field('my_invite_code').get()
        return res
    }

在保证数据库权限和用户权限没有问题的前题下,

如上代码,会报"Error: 权限校验未通过,未能获取当前用户信息,当前用户为匿名身份,"

问题是在代码第二行,

即使你在前段登录,在本地有TOKEN,但是在云函数里使用数据库连接时,并不能自动传送本地TOKEN信息到数据库连接.

这种情况只需要在第二行改为

const db=uniCloud.databaseForJQL({clientInfo:this.getClientInfo()})

然后就不报权限错误了.

倒数第二行JQL语法里where语句中,这样是正常工作的,但是文档中的,.where('_id==$cloudEnv_uid')写法不生效,会报个本地没有schema的错.

不知道什么原因.如下所示

//const res=await db.collection('uni-id-user').where('_id==$cloudEnv_uid').field('my_invite_code').get()
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值