如何在组和区域中部署单个 Firebase 云函数?
How can I deploy a single Firebase Cloud Function in a group and a region?
我创建了一组部署在区域 (europe-west1
) 中的 Firebase Cloud Functions (v2
)。
#index.ts
import * as apiV2 from './v2';
export const v2 = apiV2;
#v2.ts
export const addTextMessage = functions.region('europe-west1').onCall(
...
)
我只想部署 addTextMessage
函数。
我试过了:
firebase deploy --only functions:v2-addTextMessage
# or
firebase deploy --only "functions:v2-addTextMessage(europe-west1)"
但是函数没有部署:
✔ functions: functions folder uploaded successfully
i functions: current functions in project: v2-addTextMessage(europe-west1)
⚠ functions: the following filters were specified but do not match any functions in the project: v2-addTextMessage(europe-west1)
我应该使用什么命令?
您使用了正确的命令,但是,您没有将 addTextMessage
函数导出到 index.ts
文件,否则部署将无法找到要部署的函数。您可以通过将以下代码添加到 index.ts
:
来导出它
export const v2-addTextMessage = apiV2.addTextMessage
此外,您不能将函数参数和函数名称用作字符串。所以你在这种情况下的命令必须是:
firebase deploy --only functions:v2-addTextMessage
对于在部署时指定区域,由于您已经将问题的编辑版本添加到代码中,因此您不能在 FirebaseCLI 命令上执行此操作,感谢@Doug Stevenson 在评论部分指出了这一点。
理想情况下,正如您在此 video 上看到的那样,您必须在部署之前通过添加以下内容在云函数代码中指定:
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
仅部署此功能,这不起作用。
我创建了一组部署在区域 (europe-west1
) 中的 Firebase Cloud Functions (v2
)。
#index.ts
import * as apiV2 from './v2';
export const v2 = apiV2;
#v2.ts
export const addTextMessage = functions.region('europe-west1').onCall(
...
)
我只想部署 addTextMessage
函数。
我试过了:
firebase deploy --only functions:v2-addTextMessage
# or
firebase deploy --only "functions:v2-addTextMessage(europe-west1)"
但是函数没有部署:
✔ functions: functions folder uploaded successfully
i functions: current functions in project: v2-addTextMessage(europe-west1)
⚠ functions: the following filters were specified but do not match any functions in the project: v2-addTextMessage(europe-west1)
我应该使用什么命令?
您使用了正确的命令,但是,您没有将 addTextMessage
函数导出到 index.ts
文件,否则部署将无法找到要部署的函数。您可以通过将以下代码添加到 index.ts
:
export const v2-addTextMessage = apiV2.addTextMessage
此外,您不能将函数参数和函数名称用作字符串。所以你在这种情况下的命令必须是:
firebase deploy --only functions:v2-addTextMessage
对于在部署时指定区域,由于您已经将问题的编辑版本添加到代码中,因此您不能在 FirebaseCLI 命令上执行此操作,感谢@Doug Stevenson 在评论部分指出了这一点。
理想情况下,正如您在此 video 上看到的那样,您必须在部署之前通过添加以下内容在云函数代码中指定:
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
仅部署此功能,这不起作用。