从TypeScript Firebase Admin SDK初始化失败

我正在尝试在我的TypeScript(Nest.js)应用程序中导入Firebase Admin SDK。

let serviceAccount = require("../../creds.json"); console.log(serviceAccount); const firebase = require("firebase"); firebase.initializeApp(environment.firebase); admin.initializeApp({ credential: admin.credential.cert(serviceAccount), databaseURL: "projectid" }); 

但是当我尝试构build应用程序时,出现以下错误。

 ERROR in ./node_modules/@google-cloud/firestore/src/v1beta1/firestore_client.js Module not found: Error: Can't resolve './firestore_client_config' in '/home/jaybell/trellis-server/trellis/node_modules/@google-cloud/firestore/src/v1beta1' @ ./node_modules/@google-cloud/firestore/src/v1beta1/firestore_client.js 28:17-53 @ ./node_modules/@google-cloud/firestore/src/v1beta1/index.js @ ./node_modules/@google-cloud/firestore/src/index.js @ ./src/server/main.server.ts ERROR in ./node_modules/google-gax/lib/operations_client.js Module not found: Error: Can't resolve './operations_client_config' in '/home/jaybell/trellis-server/trellis/node_modules/google-gax/lib' @ ./node_modules/google-gax/lib/operations_client.js 30:17-54 @ ./node_modules/google-gax/index.js @ ./node_modules/@google-cloud/firestore/src/v1beta1/index.js @ ./node_modules/@google-cloud/firestore/src/index.js @ ./src/server/main.server.ts ERROR in ./node_modules/google-gax/index.js Module not found: Error: Can't resolve './package' in '/home/jaybell/trellis-server/trellis/node_modules/google-gax' @ ./node_modules/google-gax/index.js 65:18-38 @ ./node_modules/@google-cloud/firestore/src/v1beta1/index.js @ ./node_modules/@google-cloud/firestore/src/index.js @ ./src/server/main.server.ts 

我试图searchpipe理SDK和谷歌云的firestore包之间的任何连接,但没有显示出来。 我试图包括firestore库并初始化它,但是这个错误仍然显示出来。

我包括pipe理SDK完全一样在Firebase文档

 import * as admin from 'firebase-admin'; 

安装完成后

 yarn add firebase-admin 

我知道firebasepipe理员sdk可以与firestore沟通,但不确定为什么它会在初始化期间抛出这个错误。

这可能与我的项目有关,包括一起编译的前端和后端组件,服务于angular站点的Node服务器。 Firebasepipe理员sdk可能会被编译与前端可能导致此错误?

有什么想法吗?

好吧,我想我可能已经解决了我自己的问题。

问题在于firebase-admin-sdk被包含在构build过​​程中,导致它失败。

解决方法是:安装https://github.com/liady/webpack-node-externals并将其添加到我的webpack.config.ts文件并排除node_modules文件夹。

然后我必须通过gcloud进行身份validation,这里的说明: 无法加载默认凭据? (Node.js谷歌计算引擎教程)

而现在的build设和服务工作。