web-dev-qa-db-ja.com

Firebase AdminNodejsがモジュールservice_account.jsonを見つけることができません

「nodefirebasedb.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);

ノードを実行すると、.jsonファイルが存在するディレクトリにいます。しかし、それは言います

Error: Cannot find module 'service_account.json'
9
Zik

必要なパスの相対部分が欠落しています。つまり、次のようなことを行う必要があります。

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

相対パスでない場合、requirenode_modulesservice_account.jsonという名前のモジュールを探します。

27
cartant

問題は、TypeScriptコンパイラがjsonファイルを認識しないことです。次の宣言をタイピングファイルに追加することで、コンパイラにそれらについて通知できます。

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

次に、次のコマンドでjsonをインポートできます。

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

タイピングファイルをまだ設定していない場合は、作成してからincludeまたはfilesに追加してtsconfig.jsonに通知する必要があります。

  "include": [
    "./index.d.ts"
  ],
2
adamduren