調用雲函數時,已經上傳了雲函數,但提示找不到對應的FunctionName 或提示數據庫或數據集合未定義的問題:
官方文檔里沒有提到,百思不得其解。最后在微信開放社區提問找到了答案↓
原因:小程序可能存在多個雲環境,如果在調用雲函數(wx.cloud.callFunction)的時候未指定雲環境則會導致小程序找不到雲函數入口
解決如下:在調用時聲明雲環境,即加上config
1 wx.cloud.callFunction({ 2 config:{ env: '環境ID' } 3 ... 4 })
完整添加函數如下:
1 wx.cloud.callFunction({ 2 config:{ env: 'public-i10xo' }, 3 name:'cloudAdd', 4 data:{ 5 bh:list[i].bianhao, 6 xingh:list[i].xinghao, 7 wd:wangdian, 8 xuh:noteIndex, 9 sj:nowdate, 10 }, 11 success:function(res){ 12 console.log(res) 13 } 14 })
對應的雲函數:
1 // 雲函數入口文件 2 const cloud = require('wx-server-sdk') 3 4 cloud.init({ 5 env:cloud.DYNAMIC_CURRENT_ENV 6 })//這句也很重要!! 7 8 const db = cloud.database() 9 // 雲函數入口函數 10 exports.main = async (event, context) => { 11 const wxContext = cloud.getWXContext() 12 return await db.collection('List').add({ 13 data:{ 14 編號:event.bh, 15 型號:event.xingh, 16 網點:event.wd, 17 序號:event.xuh, 18 時間:event.sj, 19 } 20 21 }) 22 }
附上刪除函數:
1 wx.cloud.callFunction({ 2 config:{ env: 'public-i10xo' }, 3 name:"xingRemove", 4 data:{ 5 currentv:currentvalue 6 }, 7 success:res=>{ 8 console.log(res) 9 wx.showToast({ 10 title: '刪除成功', 11 icon:'none', 12 duration: 2000 13 }) 14 }, 15 fail:err=>{ 16 console.log(err) 17 } 18 })
對應的雲函數:
// 雲函數入口文件 const cloud = require('wx-server-sdk') cloud.init({ env:cloud.DYNAMIC_CURRENT_ENV }) const db = cloud.database() // 雲函數入口函數 exports.main = async (event, context) => { const wxContext = cloud.getWXContext() return await db.collection('XingHao').where({ 型號:event.currentv }).remove() }
修改函數:
1 wx.cloud.callFunction({ 2 config:{ env: 'public-i10xo' }, 3 name:"xingUpdate", 4 data:{ 5 oldv:old, 6 newv:input 7 }, 8 success:res=>{ 9 console.log(res) 10 wx.showToast({ 11 title: '修改成功', 12 icon:'none', 13 duration: 2000 14 }) 15 }, 16 fail:err=>{ 17 console.log(err) 18 } 19 })
對應的雲函數:
1 // 雲函數入口文件 2 const cloud = require('wx-server-sdk') 3 4 cloud.init({ 5 env:cloud.DYNAMIC_CURRENT_ENV 6 }) 7 8 const db = cloud.database() 9 // 雲函數入口函數 10 exports.main = async (event, context) => { 11 const wxContext = cloud.getWXContext() 12 13 return await db.collection('XingHao').where({ 14 型號:event.oldv 15 }) 16 .update({ 17 data: { 18 型號: event.newv 19 }, 20 }) 21 }
運行成功,感謝大佬回答!!
提問傳送門: https://developers.weixin.qq.com/community/develop/doc/0008c05375060007bdba4380256000