收藏
回答

小程序端调用 db.collection.doc.update 数据没更新,不知道是什么原因?

// 数据库权限设置为:所有用户可读,仅创建者可读写

// 这条 ID 的数据是我自己创建的数据,ID 也没有错
// 小程序端代码
const db = wx.cloud.database()
db.collection('second-hand')
  .doc(id)
  .update({
    data: {
      quantity: 0,
    }
})

// 返回
{
  errMsg: "document.update:ok",
  stats: {updated: 0}
}

// 有人知道是什么问题么,感谢
回答关注问题邀请回答
收藏

3 个回答

  • Mr.Zhao
    Mr.Zhao
    2020-08-06

    权限问题,数据是你创建的,关键你是在云函数创建的?控制台创建的?小程序创建的?

    2020-08-06
    有用 1
    回复 6
    • 27
      27
      发表于移动端
      2020-08-06
      云函数创建的,这有问题么?
      2020-08-06
      回复
    • Mr.Zhao
      Mr.Zhao
      2020-08-06回复27
      云函数创建的,用云函数修改,小程序端没权限修改的
      2020-08-06
      回复
    • 27
      27
      2020-08-06回复Mr.Zhao
      好的,我没找到相关说明,文档直接是这么说的么?
      2020-08-06
      回复
    • Mr.Zhao
      Mr.Zhao
      2020-08-06回复27
      不用看文档,可以自己实践出来,你如果改成自定义权限,读写都是true,在哪都能改
      2020-08-06
      1
      回复
    • 27
      27
      2020-08-06回复Mr.Zhao
      好的,感谢
      2020-08-06
      回复
    查看更多(1)
  • Admin ²º²⁴
    Admin ²º²⁴
    2020-08-06
    目测  .doc(id)这个条件可能没有找到对应的记录导致更新0条。或者是权限问题导致更新失败
    
    2020-08-06
    有用 1
    回复 3
    • 27
      27
      发表于移动端
      2020-08-06
      id没问题的,doc(id).get()能拿到数据
      2020-08-06
      回复
    • Admin ²º²⁴
      Admin ²º²⁴
      2020-08-06回复27
      那就是后者了。
      2020-08-06
      1
      回复
    • 石超
      石超
      2022-04-01回复Admin ²º²⁴
      确实是后者。。。
      2022-04-01
      回复
  • 石超
    石超
    2022-04-01

    看了Mr.Zhao的回复权限问题,这个是正解。我是在云开发控制台里,把数据库里的相应集合的权限改成自定义,把下面默认的原始代码里的read和write都改成“true”就OK了。

    {
    "read": true,
    "write": "doc._openid == auth.openid"
    }
    
    2022-04-01
    有用
    回复
登录 后发表内容
问题标签