我正在尝试开始使用 Cloud Functions for Firebase 并尝试实现一个简单的
onCall
处理程序。我从v2 函数的文档复制了默认代码,并减少了它以获得最简单的代码来排除其他问题。这里是一个最小的参考:index.js
:
const {onCall, HttpsError} = require("firebase-functions/v2/https");
exports.helloHttp = onCall((request) => {
return {
'data': request.data.name
}
});
以及相关的
package.json
:
{
"type":"module",
"dependencies": {
"firebase-functions": "^5.0.0"
}
}
当我尝试使用 Google Cloud Functions Console 中的“运行测试”按钮运行代码时,出现以下错误:
[9:08:51 PM] - TypeError: Cannot read properties of undefined (reading 'on')
at /workspace/node_modules/firebase-functions/lib/common/providers/https.js:392:17
at new Promise (<anonymous>)
at /workspace/node_modules/firebase-functions/lib/common/providers/https.js:391:16
at /workspace/node_modules/firebase-functions/lib/v2/trace.js:16:28
at /layers/google.nodejs.functions-framework/functions-framework/node_modules/@google-cloud/functions-framework/build/src/function_wrappers.js:113:25
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
我使用的是node.js运行时版本20,除非我遗漏了一些明显的东西,否则感觉像是导入的
onCall
函数中的一个错误。
有人知道如何让
onCall
在 Cloud Functions 中工作吗?我可以切换到使用标准 HTTP 请求,但我想使用与 Callables 相关的身份验证内容,看起来这应该很容易(?)。
无法从 Google Cloud 控制台运行使用 firebase-functions 模块的函数。该模块的唯一正确使用绝对需要使用 Firebase CLI 进行部署或模拟,以便它可以在部署之前正确了解如何配置该功能。
我建议按照 Firebase Cloud Functions 入门指南来演练示例。您将看到步骤 2 要求您安装 CLI。
如果您必须使用 Google Cloud 控制台,则根本无法使用 firebase-functions 模块来声明您的函数。相反,也许可以阅读本教程并使用@google-cloud/functions-framework模块。但是,您将无法使用它来轻松构建 Firebase 可调用类型函数。