微信小程序云开发(笔记)————修改非本人创建数据;云函数创建和使用

时间:2024-03-01 16:44:27

最近开发的小程序遇到了一个问题,就是我用 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 })

  

 

 

调用成功~