发现cloud.getWXContext()的坑
发布于 2 年前 作者 fengxiulan 4326 次浏览 来自 分享

有个项目,需从前端调用一个云函数(1),再从这个云函数(1)调用另一个云函数(2),因为在(2)中需要取openid,所以我就在(2)中加上以下代码:

const wxContext = cloud.getWXContext()

let oid=wxContext.OPENID

数据保存时加入openid字段:_openid: oid,

按腾讯提供的资料来写,一切正常!保存安装部署,成功!

运行程序,结果发现。。。集合中没有_openid字段,什么情况?

取openid不是固定写法吗?这还能出错?试了很久都没发现哪里的代码有问题。

后来我把数据保存改为:_openid: ‘’ + oid,

然后在数据库中终于看到了_openid字段,值为undefine,这就奇怪了,wxContext.OPENID取不到openid?

试了下从前端直接调用(2)是可以取到openid的。

那就是从云函数调用云函数时,第二个云函数中的 cloud.getWXContext()是无效的,真是好大的坑啊!

解决办法:在第一个云函数取openid,然后传给第二个云函数。

1 回复

小程序 -> 网关 ->云函数,网关获取用户信息的,云函数A ->云函数B 没走网关,所以没有

回到顶部