收藏
回答

云数据库——如何设置管理员权限

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

- 当前 Bug 的表现(可附上截图)

1.在一个权限为 所有用户可读,仅创建者及管理员可写

的集合中,尝试通过doc.update去更新记录,发现只能更新自己的记录,定位原因是自己并非管理员。

问题:如何设置自己为管理员。

2.在doc.update中,三个回调函数中,我设置的打印均未执行。

无论是成功更新了自己的记录或者是未成功更新他人的记录。


- 预期表现


- 复现路径


- 提供一个最简复现 Demo


updataFixedData(srcData) {
    const goodsCollection = getApp().globalData.goodsCollection;
    const _this = this;
    var id = srcData._id;
    delete srcData._id;
    delete srcData._openid;
    var doc = goodsCollection.doc(id);
    console.log("修复数据", srcData, doc);
    var res = doc.update({
      data: srcData,
      success: function (res) {
        console("修复数据成功", res);
      },
      fail: function (res) {
        console("修复数据失败", res);
      },
      complete: function (res) {
        console("修复数据完成", res);
      }
    });
    console.log(res);
  },


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

3 个回答

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

    第一个问题,目前没有这种权限支持,可以通过服务端SDK在云函数里访问,服务端都是以管理员的身份进行的。第二个问题,有其它报错信息吗

    2018-09-23
    赞同
    回复 5
    • 袁秋兴
      袁秋兴
      2018-09-24

      没有报错信息,代码中的三个回调函数中的打印都没有被执行

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

      要更新的数据都是通过客户端SDK添加的吗

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

      是的,doc.update接口,数据是自己填充的。

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

      发现打印函数写错了,见谅。


      用了云函数来执行update,期待有管理员权限可update全部数据库,但是与预期不符。


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

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


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

      管理员权限需要使用server sdk才行;云函数的是管理员权限,不应该会再有openid相关的权限限制;云函数中的promise写法文档里有哈,遇到问题的话贴一下

      2018-09-25
      回复
  • 陈予
    陈予
    2018-09-25
    1. 通过云函数可以实现的,云主函数里要使用return去调用db.collection('XXX')....方法

    2. Server API 不再接受回调(successfailcomplete),统一返回 Promise,

      1. https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-server-api/database/index.html


    2018-09-25
    赞同 1
    回复 1
    • 袁秋兴
      袁秋兴
      2018-09-25

      卧槽!原来如此!

      2018-09-25
      回复
  • 袁秋兴
    袁秋兴
    2018-09-23

    或者在云客户端提供一个方法,可以批量处理数据库数据。

    2018-09-23
    赞同
    回复