我正在尝试通过本地终端部署云功能。为此,我使用以下代码:
gcloud beta functions deploy networkcheck \
--region=europe-west1 \
--project=project-id \
--entry-point functionName \
--trigger-event providers/cloud.firestore/eventTypes/document.write \
--trigger-resource projects/project-id/databases/(default)/documents/test/test_id \
--runtime nodejs8
这将导致以下错误:
deploy.sh: line 7: syntax error near unexpected token `('
deploy.sh: line 7: ` --trigger-resource projects/project-id/databases/(default)/documents/test/test_id \'
当我将'(default)'更改为'default或任何其他字符串'时,脚本执行得很好。但是云功能将无法正常工作,因为可用于Firestore数据库的唯一ID是“(默认)”,如本文中所述:How to find the database id of a cloud firestore project?
这是一个错误吗?或者我可以以某种方式解决此问题?
答案 0 :(得分:2)
Parenthesis are special characters in the bash command shell.您将需要对其进行转义,以便按字面意义使用它们,而不是由Shell对其进行解释。在这里,我只是将--trigger-resource parameter
用单引号引起来,所以括号不会有特殊含义:
--trigger-resource "projects/project-id/databases/(default)/documents/test/test_id"