收藏
回答

云函数中调用云函数,OPENID不存在,并且数据库update不成功,怎么解决?

openid 通过wxContent可以获得。但在被调用的云函数中,上下文没有openid, 这可能是造成数据库update 不成功(stats.updated 为 0)的原因(权限问题,通过自定义权限也不行)。也许通过解决被调用云函数的openi赋值就可以了,有谁知道如何解决吗?

最后一次编辑于  10-11
回答关注问题邀请回答
收藏

2 个回答

  • 制程_赵永_13918704268
    制程_赵永_13918704268
    星期日 12:21

    自己解决了(被云函数调用的云函数中是可以实现update的),以下是过程记录:

    2020年10月18日 云数据库 update坑非常多,(算是辣鸡了)

    1,   数据库权限,首先检查当前数据库的集合是否为第一个选项,所有用户可读,仅创建者可读写,可以通过自定义修改。

    2,   检查集合中的字段是否有openid,如果从外部导入的表需要加上openid字段

    3,   云函数update的时候,记得在cloud.init({env: ‘环境id’})

    4,   在被调用云函数update可以通过手工传一个openid参数给被调用云函数使用。

    5,_id不正确时也有同样情况。我这次问题的本质时 _id ="XXXXX" , 实际上代码写得不对,变成_id =""XXXXX"",调试的时候没有发现,然后晕了。

    星期日 12:21
    有用 1
    回复
  • 老张
    老张
    10-11

    代码写错了。

    10-11
    有用
    回复 2
    • 制程_赵永_13918704268
      制程_赵永_13918704268
      10-13
      不是的。单独执行云函数update正常,用另一个云函数调用那个云函数,openid不存在,因为update也执行不成功。不是代码问题。
      10-13
      回复
    • 老张
      老张
      10-13回复制程_赵永_13918704268
      所以,你明知道得不到openid,还继续这样写代码?我就是这个意思。
      10-13
      回复
登录 后发表内容
问题标签