最近开发的小程序遇到了一个问题,就是我用 update 方法只能修改自己创建的数据内容,也就是只能修改数据的 _openid 是我的 openid的数据
然后我首先想到的是百度怎么解决,百度出来的方法都差不多,自己试了半天也没整明白,然后去看了官方文档,果然就做出来了!!
下面我来做笔记
我想要实现的功能是:在 【users】集合内给非当前用户创建数据添加【lover】内容
1.首先在云函数根目录上右键,点击【新建Node.js 云函数】
比如我创建的这个【add_lover】云函数
2.打开【add_lover】下的【index.js】文件
内容是这样的,咱不用,咱自己写
我写的方法是这样的
// 云函数入口文件 const cloud = require(\'wx-server-sdk\') cloud.init() // 云函数入口函数 const db = cloud.database() // 云函数入口函数 // event 为调用此云函数传递的参数,传递的参数可通过event.xxx得到 exports.main = async (event, context) => { try { // 调用 update 方法 // users 是我要修改的集合的名字 // event.dataId 和 event.lover 是我调用此云函数带的参数 return await db.collection(\'users\').doc(event.dataId).update({ // data 为 users 集合内我要修改的内容 lover 为字段名 event.lover 为要修改成的内容 data: { lover: event.lover } }) } catch (e) { console.error(e) } }
3.部署云函数,在【add_lover】文件右键点击【上传并部署】后出现 node.js 为部署成功
4.在你需要的 js 文件内调用【add_lover】云函数
wx.cloud.callFunction({ // 云函数名称【刚刚创建的云函数文件的名字】 name: \'add_lover\', // 传给云函数的参数
// dataId 为我要修改的 users 集合内数据的 _id ; lover 为要修改的内容 data: { dataId: \'3397e9015d849098014a288666f94254\', lover: \'girl\', }, success: function (res) { if (res.result.errMsg == \'document.update:ok\'){ console.log(\'调用成功\') } }, fail: console.error })
调用成功~