部署时导致打字稿编译错误的原因

What causes typescript compile error when deploying

我大致按照这个tutorial用打字稿制作了一个云函数。它在开发中运行良好,但是当我尝试部署它时(firebase deploy --only functions),我得到了很多打字稿错误。我不知道为什么。它在开发中有效,为什么我不能将相同的设置推送到 Firebase?

按照以下步骤成功部署云功能:

  • 使用此 step 创建 Firebase 项目后,安装 Firebase CLI 使用:npm install -g firebase-tools.
  • 运行 firebase login 通过浏览器登录并验证 Firebase 工具。
  • 运行 firebase init firestore
  • 运行 firebase init functions
  • 当你运行firebase init functions时,会有提示,1st 提示:“你想用什么语言来写云 职能?” -> 选择打字稿。第二个提示:你想使用吗 ESlint 捕获可能的错误并强制执行样式 (y/n)? -> 选择 n。 通过 select 不,你将从打字稿中拯救自己 编译错误。
  • 初始化完成后,取消注释 index.ts 中的示例,然后 运行 npm run serve 查看正在运行的“Hello World”函数。一旦您 可以在Firebase模拟器中看到输出,你就会知道功能 正确执行。
  • 现在,在部署函数之前,分配 Cloud Functions Invoker、Cloud Functions Admin 和 Cloud Functions Developer 角色 project-id@appspot.gserviceaccount.com
  • 现在运行firebase deploy –only functions。部署将是 成功但浏览器可能会显示 403 错误(客户端不会 获得许可..)为此,select 你的云功能(复选框) 单击右侧“权限”选项卡下的“添加成员”, 在“新成员”下输入“allUsers”,select角色为Cloud Functions -> Cloud Functions Invoker,然后保存配置。
  • 如果您不想让 public 访问您的云功能,您 可以通过跳过上一步来设置身份验证。在云端 Shell、运行 gcloud auth print-identity-token。这输出一个令牌 您将使用它来验证您的云功能。现在 在您的请求中提供身份验证凭据作为 Google-generated ID 令牌存储在授权 header 中 命令:

curl https://REGION-PROJECT_ID.cloudfunctions.net/FUNCTION_NAME \ -H "Authorization: bearer $(gcloud auth print-identity-token)"