node.js - 无法在 Node.js 中导入 firebase-admin
问题描述
我有一个 Node (14.3.0) 服务器,我通过添加以下行在我的 package.json 中启用了 ES6 模块导入:
包.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
没有正确导入 - 我尝试删除"type": "module"
package.json 中的行并使用 require 导入 firebase-admin:
const admin = require(firebase-admin)
它有效,所以我的问题是 - 是否可以firebase-admin
使用 ES6 在 Node 中导入,如果可以,如何导入?
下面是一个完整的、最小的复制品:
服务器.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;
包.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-node
我在github上问了这个问题。显然,他们还没有使用 Node 14 测试导入。答案很简单:
import admin from 'firebase-admin'
你可以在这里看到一个解释:
https://github.com/firebase/firebase-admin-node/issues/1061#event-3868300300
推荐阅读
- list - 带有自定义列表的 IndexOf (Flutter - Dart)
- reactjs - 在onclick按钮事件中遍历到reactjs中的另一个页面
- python - 已安装 Python 3 Pyperclip 但未找到模块
- pine-script - 获取 X 位置蜡烛的最高点
- javascript - Angular HttpClient - 访问隐藏在响应数据中的值
- node.js - 无法将文档上传到我的 mongoDB 服务器
- java - 有人可以解释我的方法有什么问题吗?
- c++ - 从顶点到片段着色器的平滑 64 位输入 - “错误 C7570:64 位输入应该是平坦的”
- python - 具有多个自变量的分位数回归?
- linux - 如何使用外部文件中的“Sed”进行替换