部署时导致打字稿编译错误的原因
What causes typescript compile error when deploying
-
firebase
-
firebase-realtime-database
-
google-cloud-functions
-
firebase-cloud-messaging
-
google-cloud-firestore
我大致按照这个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)"
firebase
firebase-realtime-database
google-cloud-functions
firebase-cloud-messaging
google-cloud-firestore
我大致按照这个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)"