Администратор Firebase Nodejs не может найти модуль service_account.json

Я начинаю свой узел с "node firebasedb.js". Мой firebasedb.js содержит этот код:

var admin = require("firebase-admin");

var serviceAccount = require("service_account.json");

// Initialize Firebase
var config = {
    credential: admin.credential.cert(serviceAccount),
    apiKey: "<api key>",
    authDomain: "<auth domain>",
    databaseURL: "<database url>",
    storageBucket: "<storage bucket>",
};

admin.initializeApp(config);

Когда я запускаю node, я нахожусь в каталоге, где существует файл .json. Но это говорит

Error: Cannot find module 'service_account.json'

person Zik    schedule 02.04.2017    source источник


Ответы (2)


Вам не хватает относительной части необходимого пути. То есть вы должны сделать что-то вроде этого:

var serviceAccount = require("./service_account.json");

Если это не относительный путь, require будет искать в node_modules модуль с именем service_account.json.

person cartant    schedule 02.04.2017

Проблема в том, что компилятор TypeScript не знает о json файлах. Вы можете сообщить о них компилятору, добавив следующее объявление в свой файл типизации.

declare module "*.json" {
  const value: any;
  export default value;
}

Затем вы можете импортировать json с помощью:

import * as serviceAccount from './service-key.json';

Если у вас еще нет настройки файла типизации, вам нужно будет создать его, а затем сообщить tsconfig.json об этом, добавив его в include или files:

  "include": [
    "./index.d.ts"
  ],
person adamduren    schedule 15.08.2017
comment
Спасибо! не могли бы вы дать больше информации о файле типизации? - person Karel Debedts; 21.12.2019
comment
где печатный файл? который? - person phongyewtong; 28.01.2021