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