带有 firebase-admin 的 NestJS 应用程序在部署到 google app engine flex 时失败

问题描述 投票:0回答:1

我能够部署到标准应用程序服务,但是当我尝试部署到我的灵活环境时,我收到此错误:

Step #1: /app/node_modules/firebase-admin/lib/app/firebase-namespace.js:84
Step #1:         this.INTERNAL = new FirebaseNamespaceInternals(appStore ?? new lifecycle_1.AppStore());

Google 针对该错误找到了一些结果,它们是关于 nodejs 版本与 firebase-admin 版本不一致的。最初,我在我的标准环境中看到了同样的问题,所以我在我的 package.json 中进行了更改以更新到版本 16,并在我的标准环境的 app.yaml 中包含了

runtime: nodejs16
。这解决了我在标准环境中的部署问题。我的 flex 环境仍然显示相同的错误。我已经将我的 flex 环境的 app.yaml 更新为:

runtime: nodejs
env: flex

runtime_config:
  runtime_version: 16

但仍然看到同样的错误。

我应该尝试解决这个问题的其他想法吗?

TIA

google-app-engine nestjs firebase-admin google-flexible
1个回答
0
投票

根据文档

在应用程序的 package.json 文件中指定 Node.js 版本 通过使用引擎字段。

{
   "engines": {
     "node": "18.x"
   }
 }

engines.node 属性可以是 semver 范围。如果你指定这个, 运行时下载并安装最新版本的 Node.js 匹配 semver 范围。如果未找到匹配项,应用程序将 部署失败,运行时将返回一条错误消息。

您需要确保已更新节点版本

package.json
文件和
app.yaml
文件一样 提到。

如果您已经更新了

package.json
文件中的节点版本,那么您需要检查
firebase toolset version
。检查您是否使用最新版本的 firebase 工具集。如果不是,您需要使用以下命令将 firebase 工具集更新到最新版本

sudo npm install -g firebase-tools@latest --force

还要确保不应该使用 --force 除非你真的想替换现有的工具集。

© www.soinside.com 2019 - 2024. All rights reserved.