【问题标题】:parameter in cloud functions is undefined云函数中的参数未定义
【发布时间】:2021-07-09 05:06:55
【问题描述】:

我有一个用于 Google Cloud Functions 的旧代码,它调整了图像的大小以创建缩略图,这是我三年前在 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-admin、firebase-functions、google-cloud-storage,但没有解决我的问题 可能发生了什么,我该如何解决?

【问题讨论】:

  • 你能分享你package.json文件吗?
  • 有一个Github issue 出现同样的错误,您得到的解决方案是在index.js 的开头设置一个新的环境变量,如下所示:process.env.X_GOOGLE_NEW_FUNCTION_SIGNATURE = true; 你能试试吗?
  • @RafaelLemos 谢谢,它像魅力一样解决了我的问题
  • @LABR 太好了,我会将其作为答案,请考虑接受它,以便社区中遇到相同问题的其他人可以更轻松地找到此解决方案。

标签: node.js firebase google-cloud-functions firebase-storage


【解决方案1】:

在这个Github issue 中,其他用户遇到了与您相同的问题,建议的解决方案与需要设置一个新变量以刷新函数中的对象并重新部署有关。

因此,如果您要向您的 index.js 添加一个新变量,如下所示:

process.env.X_GOOGLE_NEW_FUNCTION_SIGNATURE = true;

然后重新部署函数,问题应该已经解决了。

【讨论】:

    猜你喜欢
    • 2019-05-16
    • 2021-01-13
    • 2018-02-07
    • 2021-08-15
    • 1970-01-01
    • 2018-03-28
    • 1970-01-01
    • 2023-03-26
    • 2011-09-25
    相关资源
    最近更新 更多