如何在组和区域中部署单个Firebase云功能?
我已经创建了一组部署在某个地区(如何在组和区域中部署单个Firebase云功能?,firebase,google-cloud-functions,firebase-cli,Firebase,Google Cloud Functions,Firebase Cli,我已经创建了一组部署在某个地区(europe-west1)的Firebase云功能(v2) 我只想部署addTextMessage功能。 我试过: firebase部署--仅功能:v2 addTextMessage #或 firebase部署--仅限“功能:v2 addTextMessage(europe-west1)” 但是,未部署该功能: ✔ 功能:已成功上载功能文件夹 i功能:项目中的当前功能:v2 addTextMessage(europe-west1) ⚠ 功能:指定了以下筛选器
europe-west1
)的Firebase云功能(v2
)
我只想部署addTextMessage
功能。
我试过:
firebase部署--仅功能:v2 addTextMessage
#或
firebase部署--仅限“功能:v2 addTextMessage(europe-west1)”
但是,未部署该功能:
✔ 功能:已成功上载功能文件夹
i功能:项目中的当前功能:v2 addTextMessage(europe-west1)
⚠ 功能:指定了以下筛选器,但与项目中的任何功能都不匹配:v2 addTextMessage(europe-west1)
我应该使用什么命令?您使用的是正确的命令,但是,您尚未将
addTextMessage
函数导出到index.ts
文件中,否则部署无法找到要部署的函数。您可以通过将以下代码添加到索引.ts
,将其导出:
export const v2-addTextMessage = apiV2.addTextMessage
此外,不能将functions参数和函数名用作字符串。所以你对这个案子的命令必须是:
firebase deploy --only functions:v2-addTextMessage
对于在部署时指定区域,由于您已将问题的编辑版本添加到代码中,因此无法在FirebaseCLI命令中指定区域,这要感谢@Doug Stevenson在注释部分指出了这一点
理想情况下,正如您在本文中看到的,在部署之前,您必须在云功能代码中通过添加以下内容来指定:
exports.v2-addTextMessage = functions
.region('europe-west1')
.storage.object().onFinalize((object) => { });
尝试将“-”替换为“.”
你应使用:
firebase deploy --only functions:groupName.functionName
就你而言:
firebase deploy --only functions:v2.addTextMessage
CLI终端日志确实有误导性,因为如果您超过了部署配额,并且CLI检测到您的函数名是例如v2 addTextMessage(europe-west-1)
,则,它将打印一条消息,建议您使用命令firebase deploy--only functions:v2 addTextMessage
仅部署此功能,但此命令不起作用
请参阅完整部署没有
--区域
标志。这只是为了删除部署到多个区域的特定区域中的函数@Doug Stevenson谢谢,我将从答案中编辑该部分,我正在查看此部分,并假设它也适用于FirebaseCLI。此命令也不起作用。更准确地说,该函数未被调用v2 addTextMessage
。函数为addTextMessage
在v2.ts
文件中声明:(`export const addTextMessage=functions.region('europe-west1').onCall(…)和globalìndex.ts
包含:`import*作为apiV2 from./api/apiV2';export const v2=apiV2;firebase deploy也是如此--only functions:addTextMessage
不起作用?不确定你所说的索引是导出,你能澄清一下吗?我的评论不清楚,我编辑了这个问题以显示我的函数的组织。
firebase deploy --only functions:groupName.functionName
firebase deploy --only functions:v2.addTextMessage