我有一个谷歌云函数的旧代码,它调整了图像的大小以创建缩略图,我三年前写的,在NodeJS 6中,它运行良好,但我必须更新到NodeJS 10,我添加了
"engines": {
"node": "10"
}
其他功能继续工作,但这不是
exports.generateThumbnail = functions.storage.object().onFinalize(async (object) => {
const contentType = object.contentType;
当我尝试访问";对象";显然是未定义的,日志错误是
TypeError: Cannot read property 'contentType' of undefined
at exports.generateThumbnail.functions.storage.object.onFinalize (/workspace/index.js:30:32)
at cloudFunctionNewSignature (/workspace/node_modules/firebase-functions/lib/cloud-functions.js:120:23)
at cloudFunction (/workspace/node_modules/firebase-functions/lib/cloud-functions.js:151:20)
at Promise.resolve.then (/layers/google.nodejs.functions-framework/functions-framework/node_modules/@google-cloud/functions-framework/build/src/invoker.js:199:28)
at process._tickCallback (internal/process/next_tick.js:68:7)
我更新了firebase管理,firebase功能,谷歌云存储,但它并没有解决我的问题可能发生了什么,我该如何解决?
在这个Github问题中,其他用户也面临着与您相同的问题,建议的解决方案必须设置一个新变量,以便刷新函数中的对象并重新部署它。
因此,如果您要向index.js
添加一个新变量,如下所示:
process.env.X_GOOGLE_NEW_FUNCTION_SIGNATURE = true;
并且重新部署功能,假设问题已经解决。