node.js - Firebase Admin SDK initialisering mislyktes fra TypeScript


Jeg prøver å importere Firebase Admin SDK i min TypeScript (Nest.js) applikasjon.

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"
});

Men når jeg prøver å bygge applikasjonen, får jeg følgende feil.

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

Jeg har forsøkt å søke etter enhver forbindelse mellom admin SDK og google-cloud firestore-pakken, men ingenting har dukket opp. Jeg prøvde også å inkludere Firestore-biblioteket og initialisere det, men denne feilen vises fortsatt.

Jeg inkluderte admin-sdk akkurat som i Firebase-dokumentasjonen med

import * as admin from 'firebase-admin';

etter installasjon med

yarn add firebase-admin

Jeg vet at Firebase Admin SDK kan kommunisere med Firestore, men er usikker på hvorfor det kaster denne feilen under initialisering.

Det kan ha noe å gjøre med prosjektet mitt som inkluderer både en frontend- og backend-komponent som blir kompilert sammen, en Node-server som serverer et Angular-nettsted. Kan det hende at Firebase Admin SDK blir kompilert med frontend, og muligens forårsaker denne feilen?

Noen tanker?

Svar #1

Ok, jeg tror jeg kanskje har løst mitt eget problem.

Problemet var at firebase-admin-sdk ble inkludert i byggeprosessen og forårsaket at den feilet.

Løsningen var: installer https://github.com/liady/webpack-node-externals og legg det til i filen min webpack.config.ts og ekskluder mappen node_modules.

Jeg måtte deretter autentisere gjennom gcloud, instruksjoner her: Kunne ikke laste inn standard legitimasjon? (Node.js Google Compute Engine-opplæring)

Og nå fungerer bygging og servering.

Svar #2

Du glemte å legge til json-utvidelsen i webpack for oppløsning

module.exports = {
    ...
    resolve: {
        extensions: ['.ts', '.js', '.json']
    }
    ...
};

Relaterte artikler