【问题标题】:Can't import firebase-admin in Node.js无法在 Node.js 中导入 firebase-admin
【发布时间】:2021-01-25 12:02:45
【问题描述】:

我有一个 Node (14.3.0) 服务器,我通过添加以下行在我的 package.json 中启用了 ES6 模块导入:

package.json:

"type": "module",

根据此处的 firebase-admin 文档:https://firebase.google.com/docs/admin/setup/#node.js

如果您使用的是 ES2015,则可以改为导入模块:

以管理员身份从“firebase-admin”导入 *;

当我使用import * as admin from 'firebase-admin'; 时出现以下错误:

凭据:admin.credential.applicationDefault(),
TypeError:无法读取未定义的属性“applicationDefault”

firebase-admin 似乎没有正确导入 - 我尝试删除 package.json 中的 "type": "module" 行并使用 require 导入 firebase-admin:

const admin = require(firebase-admin)

它有效,所以我的问题是 - 是否可以使用 ES6 在 Node 中导入 firebase-admin,如果可以,如何?

下面是一个完整的、最小的复制品:

server.js

import express from 'express';
import * as admin from 'firebase-admin';

const app = express();
const PORT = process.env.PORT || 5000;

app.use(express.json());

admin.initializeApp({
  credential: admin.credential.applicationDefault(),
  databaseURL: process.env.FIREBASE_DB_URL,
});

app.listen(PORT, () => console.log(`listening on ${PORT}`));

export default app;

package.json

{
  "name": "server",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "dependencies": {
    "express": "^4.17.1",
    "firebase-admin": "^9.2.0",
  },
  "type": "module",
  "scripts": {
    "dev": "node server.js"
  },
  "engines": {
    "node": "14.x"
  }
}

注意:在运行服务器之前,请确保在您的 shell (Mac/Linux) 中执行以下操作:

export GOOGLE_APPLICATION_CREDENTIALS="/your/path/to/service-account-file.json"

【问题讨论】:

  • 我一直都是这样导入 firebase-admin 的。如果您更详细地解释导致此错误的 complete, minimal reproduction 是什么样的,这可能会有所帮助。
  • 嗨@DougStevenson - 我添加了这个。如果需要更多说明,很高兴补充这个问题。当我从 package.json 中删除 "type":"module" 并使用 const x = require('package-name') 而不是 import 并删除 default export app - 该示例有效。

标签: node.js firebase ecmascript-6 es6-modules firebase-admin


【解决方案1】:

像这样使用它:

import * as admin from 'firebase-admin';
const {credential} = admin;

这样你就可以使用这些功能了。

【讨论】:

    【解决方案2】:

    我在firebase-admin-node github 上问了这个问题。显然,他们还没有使用 Node 14 测试导入。答案很简单:

    import admin from 'firebase-admin'
    

    你可以在这里看到解释:

    https://github.com/firebase/firebase-admin-node/issues/1061#event-3868300300

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-08
      • 2019-12-04
      • 1970-01-01
      • 2022-12-07
      • 2016-03-31
      相关资源
      最近更新 更多