收藏
回答

云开发数据库数据更新操作

问题模块 框架类型 问题类型 终端类型 AppID 基础库版本
云开发 小程序 Bug 客户端 wxba1b096da0a16890 2.3.0


    使用了云开发模板。后来自己新添加的集合不能更新。

   1、 使用数据库更新api:

        db.collection('XXX').doc("XXXXXX").update({})

        发现不能更新预期的字段(权限已放开选了:所有用户可读,仅创建者及管理员可写

        

2、除了counter集合(云开发模板自带)可以使用api更新操作,其他自己新建的都不行,请问是什么原因?




最后一次编辑于  2018-09-23  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

1 个回答

  • 张吉(jimmyjzhang)
    张吉(jimmyjzhang)
    2018-09-23

    确认下记录的_openid字段是不是跟你开发用的openid一致呢

    2018-09-23
    赞同
    回复 14
    • 陈依
      陈依
      2018-09-23

      我是用这个云函数获取openid的和保存的是一致的

      wx.cloud.callFunction({

      name: 'getUserInfo',

      complete: res => {

      if ('xxxxxxxx' == res.result.openId) {

      console.log('我是超级管理员')

      this.setData({

      managerFlag: false

      })

      }

      console.log('callFunction test result: ', res.result.openId)

      }

      })


      // 云函数入口函数

      exports.main = async (event, context) => {

      return event.userInfo

      }


      2018-09-23
      回复
    • 张吉(jimmyjzhang)
      张吉(jimmyjzhang)
      2018-09-24回复陈依

      在客户端只能更新当前用户openID对应的记录,如果权限没问题的话,请再确认下openID

      2018-09-24
      回复
    • 陈依
      陈依
      2018-09-24回复张吉(jimmyjzhang)

      可以了,之前没理解。每个集合都要有对应的openID字段,我之前新建的集合都没有这个字段,所以更新不成功。

      多谢!

      2018-09-24
      2
      回复
    • 袁秋兴
      袁秋兴
      2018-09-25回复张吉(jimmyjzhang)

      客户端调用云函数会传进event,当中有自己的openid,此时运行的云函数主体有update数据库的操作,更新不成功时符合预期的吗(无论是否本openid均更新不成功)。

      而且云数据库的doc.update这种怎么写在云函数中写promise,还望指教。

      2018-09-25
      回复
    • 黄拯
      黄拯
      2018-10-02回复陈依

      关键是创建集合时如何带上openid呢?

      2018-10-02
      回复
    查看更多(9)