小程序,云函数云端测试可以成功,本地代码调用无法修改,为什么?
云函数入口: // 云函数入口文件 const cloud = require('wx-server-sdk') cloud.init({ env: 'cloud1-6gxun1p3f1eef5e5', traceUser: true }) const db = cloud.database() // 云函数入口函数 exports.main = async (event, context) => { try { return await db.collection("MY_BOOK").doc(event.item).update({ data : { BOOKSTATE : event.readingstate , //这里前面的BOOKSTATE,是数据库中的字段,event.后面的readingstate,是调用时,构造data要提供的字段;在云端测试时,这里也要写成readingstate REMARK : event.readremark //同上 } }) } catch (e) { //TODO handle the exception console.error(e) } } 上述云函数已经部署,在云端测试,输入id和readingstate ,readremark ,可以正确的更改数据库内容; 但是,如果在按钮中,采用如下函数调用,则无法更改: updateBook() { var db = wx.cloud.database() db.collection("MY_BOOK").where({BOOKNAME: '红楼梦'}).get({ //先查找,目的是获取_id来定位数据记录 success : res => { wx.callFunction({ name : 'update_book' , //需要调用的云函数名称 data : { item : res.data[0]._id , //将查找的记录id传给云函数,更新这条记录 readingstate : '刚刚开始读', readremark : '红楼梦是曹雪芹写的清朝的名著' } , success : res_del => { //删除成功后提示已删除 wx.showToast({ title : '已更新' , icon : 'none' }) } }) } }) console.log('Button updateBook clicked!'); }