云函数删除数据库记录,本地调试成功,云端执行报错,为什么?
调试基础库:2.14.1 API:数据库remove 问题简述: 在云函数中调用数据库集合的remove方法,本地调试时,模拟器触发,本地调试窗口右侧的环境变量env设置不论是选择默认环境还是具体环境ID都能成功执行 而云端执行(同样是模拟器触发)则会报错 Error: collection.remove:fail -501007 invalid parameters。 如果删去try catch的话,报错信息是Error: errCode: -404011 cloud function execution error | errMsg: cloud.callFunction:fail requestID 1ae93ebc-62ef-4169-904b-623a0ed62c53, cloud function service error code -504002, error message Error: collection.remove:fail -501007 invalid parameters,从这里能直接看到,出现问题确实就是调用remove的参数无效。 其他的很多出现-501007错误的帖子,问题也稀奇古怪,比如不能设置_openid和_id等等。还有的是调用openapi时出现-501007,和这里的具体错误信息也不一样。确实看不出来自己的代码哪里有问题,希望大家指点。 代码如下: const cloud = require('wx-server-sdk');
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV
});
const wxContext = cloud.getWXContext();
const db = cloud.database();
exports.main = async (event, context) => {
console.log(wxContext.OPENID)
try {
await db.collection("errands_draft").where({
data:{
userInfo:{
openId:wxContext.OPENID
}
}
}).remove()
await db.collection("errands_released").add({
data: {
id: wxContext.OPENID,
data: event,
time:new Date().getTime()
}
});
return {
success:true
}
}
catch(e){
return {
err:e,
success: false
}
}
};