收藏
回答

云函数调用数据库使用{openid}变量失效

框架类型 问题类型 终端类型 AppID 环境ID 基础库版本
小程序 Bug 工具 wxc06832603eb9ec24 todo-d491i 2.10.4

更新:

最终问题解决了,起初翻阅文档看到云开发数据库配置中的{openid}变量,感觉十分便利,后尝试用云函数调用数据库时出现此问题,问题在于对说明文档的谬读:

安全规则是用来约束前端小程序调用数据库的,{openid}变量需搭配相关安全规则使用方有效,如:

// 自定义安全规则
{
  "read": "doc.publisher == auth.openid"
}
// 小程序端数据库逻辑
db.collection('test').where({
  publisher: '{openid}'
}).get()

而对于云控制台和服务端(包括云函数)而言,始终具有所有数据的读写权限,安全规则的配置并不起作用,因此应该也无法使用{openid}。

以上是目前本人针对该问题的个人理解。

--------------------------------------------------------------------------------------------------------------

原文:

云函数调用数据库使用{openid}解析失效,小程序端调用数据库使用{openid}变量表现正常。

相关逻辑:

预期表现:


最后一次编辑于  2020-04-25
回答关注问题邀请回答
收藏

3 个回答

  • 阿伟
    阿伟
    2020-05-16

    这些文档写得跟屎一样,真是无语

    2020-05-16
    有用
    回复
  • 老张
    老张
    2020-04-24

    js语法错误,请学好js先。

    2020-04-24
    有用
    回复 10
    • 570
      570
      2020-04-25
      您好,请问哪里有语法错误,本地测试该插入逻辑可以正常执行啊,希望能指点一下。{openid}的用法也是按照官方文档里用法:
      2020-04-25
      回复
    • 老张
      老张
      2020-04-25回复570
      '{这里放你的名字}',这样的说明文档你都看不懂吗?
      2020-04-25
      回复
    • 阿伟
      阿伟
      2020-05-16回复老张
      人家哪里写错了,是你理解错了吧
      2020-05-16
      回复
    • 老张
      老张
      2020-05-16回复阿伟
      我理解错了?如果文档里是:publisher:'{openid}',那么我写的代码肯定是:publisher:'oNhQX0SsRocJU97bbDlG9LqjSidM'
      2020-05-16
      回复
    • 老张
      老张
      2020-05-16回复阿伟
      或者我看完这样的文档,会写成:
      2020-05-16
      回复
    查看更多(5)
  • Terry.Zhao
    Terry.Zhao
    2020-04-24

    云函数获取openid 的方法是Cloud.getWXContext().OPENID,不能直接用{openid}的把

    https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-sdk-api/utils/Cloud.getWXContext.html#%E8%BF%94%E5%9B%9E%E5%80%BC

    2020-04-24
    有用
    回复 1
登录 后发表内容
问题标签