最近開發的小程序遇到了一個問題,就是我用 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
})


調用成功~
