本来觉得弄个小项目,就不去用小程序的云函数功能了,直接使用小程序提供的函数去修改数据库的,但后面发现用自己的账号去修改别人发布的数据时(比如管理员想要置顶或删除别人的数据时),小程序端返回的是操作成功,但是我去数据库里发现数据没有变化,原来是小程序提供的数据库操作函数只能操作自己的数据(即该条数据的openId必须与你当前登录的openId相同),后面查阅资料后发现需要使用云函数才能修改其他openId的数据,也是很简单的。接下来就是详细的做法
首先,在云函数里新建一个云函数
然后,在你创建的云函数里面的index.js文件添加数据库操作函数
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
const db = cloud.database()
// 云函数入口函数
exports.main = async (event, context) => { //event为等下在调用时带的数据,不能改
try {
//我这边用的是更新功能,也可以改成其他的操作
return await db.collection("test").doc(event.id).update({
data: event.data
})
} catch (e) {
console.error(e)
}
}
接下来就是最重要的一步,也是经常被忽略的一步,就是上传并部署该云函数(每次修改了云函数后都要上传)
接下来就是在js中使用该云函数
wx.cloud.callFunction({
name:'你命名的云函数文件名',
data:{ //这里就是上面提到的event,你要传的数据都放在这里带过去
id:_id,
data:data
},
success:res=>{ //这里面写成功后的一些操作
}
})
完成!测试了一下,可以修改其他人的数据了