Firebase Admin Nodejs找不到模块service_account.json

时间:2017-04-02 08:13:20

标签: node.js firebase service firebase-admin

我用“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'

2 个答案:

答案 0 :(得分:20)

您缺少所需路径的相对部分。也就是说,你应该做这样的事情:

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

如果它不是相对路径,则require会在node_modules中查找名为service_account.json的模块。

答案 1 :(得分:2)

问题是TypeScript编译器不知道json个文件。您可以通过在您的打字文件中添加以下声明来告诉编译器。

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

然后您可以使用以下内容导入json:

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

如果您还没有打字文件设置,则需要创建一个,然后通过将其添加到tsconfig.jsoninclude告诉files

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