破案了,
是云函数的角色问题,我的角色没有访问云数据库的权限,谢谢。
让角色拥有tcb和scf的权限就好。
-------------------------------------------------------
serverless云函数报错,求解?
const cloud = require('wx-server-sdk') // wx-server-sdk 2.3.2
cloud.init()
const db = cloud.database()
const resInfo = db.collection('resInfo')
exports.main_handler = async (event, context, callback) => {
return await resInfo.get().then(res => {
return res
})
}
数据库权限
{
"read": true,
"write": true
}
报错
errCode: -501007 invalid parameters | errMsg: collection.get:fail missing authoration key,
redeploy the function; at collection.get api;
今天也遇到这个报错,我的原因是把数据库操作放在了 main 之外。
我大概是这么写的
async function init(){ await db.collection('xxx').xx.xx.xx } const initPromise = init() exports.main = async (event, context) => { await initPromise return 'ok' }
就是试图在 main 函数外进行数据库操作,在本地调试是没问题的,但放在云端就会报错。 总结一下就是:main 函数之外没有权限。
return await resInfo.get()
这样试一试