Firebase Admin Nodejs 找不到模块 service_account.json

Posted

技术标签:

【中文标题】Firebase Admin Nodejs 找不到模块 service_account.json【英文标题】:Firebase Admin Nodejs cannot find module service_account.json 【发布时间】:2017-08-27 05:27:15 【问题描述】:

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

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

【参考方案2】:

问题在于 TypeScript 编译器不知道 json 文件。您可以通过将以下声明添加到您的类型文件中来告诉编译器。

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

然后您可以使用以下命令导入 json:

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

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

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

【讨论】:

谢谢!您能否提供有关类型文件的更多信息? 打字文件在哪里?哪个?

以上是关于Firebase Admin Nodejs 找不到模块 service_account.json的主要内容,如果未能解决你的问题,请参考以下文章

谷歌云平台:“找不到模块 firebase-admin”

如何使用 Firebase-admin 为 NodeJs 设置 timestampsInSnapshots 设置?

找不到模块'serviceAccountKey.json'

Typeorm + Firebase 功能:部署后“在任何 orm 配置文件中都找不到连接选项”

如何使用firestore admin nodejs sdk设置服务器时间戳?

使用 Firebase 进行 NodeJS 身份验证