html52.com
我爱小程序-开发者交流社区

云函数使用事务,无法写入_openid字段

框架类型 问题类型 终端类型 AppID 环境ID 基础库版本
小程序 Bug 工具 wxc990b2165022c8d3 test-zpg4i 2.10.2

小程序提供的事务必须在云函数端使用,但是在事务中无法将_openid写入到集合中去,并且使用db.serverDate()也是会报错的。

复现云函数代码:

// 云函数入口文件
const cloud = require('wx-server-sdk')


cloud.init()


const db = cloud.database()


// 云函数入口函数
exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext()


  await db.collection('test3').add({
    data: {
      _openid: wxContext.OPENID,
      createTime: db.serverDate(),
      name'db add'
    }
  })


  const transaction = await db.startTransaction()
  await transaction.collection('test3').add({
    data: {
      _openid: wxContext.OPENID,
      createTimenew Date(),
      // createTime: db.serverDate(), //报错 invalid key in $date object: offset
      name'transaction add'
    }
  })
  await transaction.commit()
  return {
    event,
    openid: wxContext.OPENID,
    appid: wxContext.APPID,
    unionid: wxContext.UNIONID,
  }
}

这个问题也已经有人遇到了:

https://developers.weixin.qq.com/community/develop/doc/0002e4a8f20e38f0a7f9df9c555c00

https://developers.weixin.qq.com/community/develop/doc/00024a5662c38072cbf97ef4e51800

https://developers.weixin.qq.com/community/develop/doc/000eacacd64ae02f8fc9dc67250000

根据上面的回帖,我也试了下自定义安全规则,并将该集合的权限全部给true,然而还是同样问题。

{
  "read": true,
  "write": true
 }

根据文档内容,事务必须在云函数端使用,如果不能写入_openid,使用其他字段来保存的话,后续的业务逻辑需要修改很多地方,希望尽快修复该问题,谢谢!

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

真正的个人免签约支付接口

云免签H5支付