Netlify Lambda 函数:保持获取路径必须是字符串类型
Netlify Lambda functions: keep getting path must be of type string
我正在使用 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);
});
}
}
我不断收到以下错误。我不太确定我做错了。
Function invocation failed: TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received type number
我明白了。它不起作用的原因是 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"
我正在使用 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);
});
}
}
我不断收到以下错误。我不太确定我做错了。
Function invocation failed: TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received type number
我明白了。它不起作用的原因是 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"