问题模块 框架类型 问题类型 终端类型 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);
},
微信小程序开发问题解答
微信小程序开发者回答:
通过云函数可以实现的,云主函数里要使用return去调用db.collection('XXX')....方法
Server API 不再接受回调(success, fail, complete),统一返回 Promise,
https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-server-api/database/index.html
微信小程序开发者回答:
卧槽!原来如此!
微信小程序开发者回答:
第一个问题,目前没有这种权限支持,可以通过服务端SDK在云函数里访问,服务端都是以管理员的身份进行的。第二个问题,有其它报错信息吗
微信小程序开发者回答:
没有报错信息,代码中的三个回调函数中的打印都没有被执行
微信小程序开发者回答:
要更新的数据都是通过客户端SDK添加的吗
微信小程序开发者回答:
是的,doc.update接口,数据是自己填充的。
微信小程序开发者回答:
发现打印函数写错了,见谅。
用了云函数来执行update,期待有管理员权限可update全部数据库,但是与预期不符。
客户端调用云函数会传进event,当中有自己的openid,此时运行的云函数主体有update数据库的操作,更新不成功时符合预期的吗(无论是否本openid均更新不成功)。
而且云数据库的doc.update这种怎么写在云函数中写promise,还望指教。
微信小程序开发者回答:
管理员权限需要使用server sdk才行;云函数的是管理员权限,不应该会再有openid相关的权限限制;云函数中的promise写法文档里有哈,遇到问题的话贴一下
微信小程序开发者回答:
或者在云客户端提供一个方法,可以批量处理数据库数据。
本文网址:http://www.91bianli.com/weixinxiaochengxu/46875.html