javascript - NodeJS 中的 Firebase Admin SDK - 用法
问题描述
我正在尝试在我的 NodeJS 项目中使用 Firebase Admin SDK 来创建 API。但是我对用法有点困惑。
我已经安装了这样的软件包:
npm install firebase-admin
在入口点文件 ( index.js
) 中,我添加了以下几行(使用实际值而不是占位符):
const express = require('express');
const app = express();
const bodyParser = require('body-parser');
//---------- FIREBASE -------------------
var admin = require("firebase-admin");
var serviceAccount = require("path/to/serviceAccountKey.json");
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "https://myprojectname.firebaseio.com"
});
//---------- /FIREBASE -------------------
//.. my other code goes here.. like middlewares, routes, etc.
我将使用firebase-admin
来验证我的身份验证控制器(单独的文件)中的令牌。那么我是否必须将上面的 firebase 部分的代码移动index.js
到我的身份验证控制器文件中?
我的意思是我必须在我想使用它的每个文件中要求并初始化 firebase-admin?
解决方案
主要选项是:
- 在您需要的每个文件中导入并初始化 SDK。
- 有一个初始化 SDK 的文件。将该文件和 SDK 导入到您需要的每个文件中,但不要再在任何地方初始化它。
- 有一个用于初始化和导出 SDK 的文件。然后在任何地方导入该文件,并从其导出中使用 Firebase 服务。
我最常看到第三个选项,但也经常看到开发人员在出口方面苦苦挣扎。因此,您可能想先尝试第二个选项。
推荐阅读
- angularjs - 使用 AngularJs ngRoute,我如何路由到与根模块不同的模块中的组件?
- vba - IF 带 VLOOKUP 直到最后一行
- angular - Firestore:将一个文档与另一个列表文档连接起来
- javascript - 如何更改 Javascript 原型中变量的值
- http - 客户端之间的 HTTP GET 下载时间差异很大
- ios - NSManagedObject 的 objectID 保存到变量中,但是从 .sheet 处理程序调用时该变量已变为 nil
- grep - 如何使用 grep 从包含方括号的文件中搜索文本字符串?
- python - 如何仅过滤我朋友在模板中的帖子
- python - PyQt5 检测到警报事件
- c++ - 为什么 QPersistentModelIndex 不能存储在 QStandardItemModel 的项目之一中?