我正在使用firebase-admin
来检索数据,并使用Netlify
Lambda函数来调用服务。基本上就是这个。
这是我的代码:
exports.handler = (event, context, callback) => {
const { id = "toronto" } = event.queryStringParameters;
const cityRefs = dbInstance.collection("cities");
console.log("req.params.id", id);
if (id === "mumbai") {
console.log("in here", id);
let cityRef = cityRefs.doc("id1");
return cityRef
.get()
.then(doc => {
if (!doc.exists) {
console.log("No such document!");
} else {
console.log("Document data:", doc.data());
callback(null, {
statusCode: 200,
body: doc.data()
});
}
})
.catch(err => {
console.log("Error getting document", err);
callback(err);
});
}
}
我一直收到以下错误。我不确定自己做错了什么。
函数调用失败:TypeError [ERR_INVALID_ARG_TYPE]:“ path”参数必须为字符串类型。收到的类型编号
答案 0 :(得分:2)
我知道了。之所以不起作用,是因为firebase-admin
被捆绑了。因此,我使用https://www.npmjs.com/package/webpack-node-externals
来捆绑firebase-admin
。我将此添加到了webpack.functions.js
:
const nodeExternals = require("webpack-node-externals");
module.exports = {
externals: [nodeExternals()]
};
,然后使用以下命令运行netlify
lambda
函数:
"start:lambda": "netlify-lambda serve src/functions --config ./webpack.functions.js"