@aglyn/ shared- util- fbserver (韩语)
服务器端 Firebase 管理员: 初始化的模块 firebase-admin 从环境变量中默认应用并曝光 Firestore 和 Auth 访问器。 它主要是Aglyn服务器侧数据层的内部构件(Aglyn)@aglyn/tenant-data-admin); 只有当您想要在自己的节点进程中使用相同的靴子时,才直接安装.
从Aglyn monorepo出版到npm. 随后的版本 语义版本。 。 。 .
安装
npm install @aglyn/shared-util-fbserver
同伴依赖 : firebase-admin (单位:千美元)^14.3.0) (中文(简体) ).
里面有什么东西
单一模块, src/lib/fbserver,从包根再导出:
fbAdmin(亦为默认导出) - 模块化的Admin SDK上的小外观:fbAdmin.firestore(app?)返回 Firestore 实例;fbAdmin.firestore.FieldValue财务报告和审定财务报表fbAdmin.firestore.Timestamp是行政SDK课程.fbAdmin.auth(app?)返回 Auth 服务.
fbAdminApp- 初始化项目App,或undefined当初始化被跳过时.verifyIdToken(idToken)- 核实一个消防基地的标识牌 并随时检查吊销.firestoreDatabaseId()- 读FIRESTORE_DATABASE_ID; 设定时,fbAdmin.firestore()目标命名数据库而不是(default)。 。 。 .
它在导入时初始化
导入此包会运行靴子夹 。 如果 Firebase app 已经存在, 它会被重用 。 否则,该模块为:
| 变量 | 需求 | 目的 |
|---|---|---|
NEXT_PUBLIC_FIREBASE_PROJECT_ID | 对 | 项目编号 |
FIREBASE_CLIENT_EMAIL | 对 | 服务账户电子邮件 |
FIREBASE_PRIVATE_KEY | 对 | 服务账户密钥; 文字 \n 序列转换为新行 |
NEXT_PUBLIC_FIREBASE_DATABASE_URL | 没有 | 实时数据库 URL |
FIRESTORE_DATABASE_ID | 没有 | 名为 Firestore 的数据库,在呼叫时读取 |
如果缺少所需的三个变量中的任何一个,则静悄悄地跳过初始化,以便仅加载模块的构建步骤不会崩溃。 这件事情没有初始化 稍后 fbAdmin.firestore() 或者说 fbAdmin.auth() 调用失败, 除非您自己初始化默认应用 .
package.json 列表 ./src/lib/fbserver.* 下级 sideEffects。这告诉捆绑者,即使似乎没有使用任何输入,进口也必须保留,因为进口本身就是应用程序的初始化。 对于消费者来说,意思是:这是一个只使用服务器的模块,具有导入时间效应. 永远不要从可以到达浏览器捆绑的代码中导入它,并期望应用程序在模块加载的时刻存在(或被跳过).
使用量
import fbAdmin, { verifyIdToken } from '@aglyn/shared-util-fbserver'
const decoded = await verifyIdToken(idToken)
const snap = await fbAdmin.firestore().doc(`users/${decoded.uid}`).get()
const now = fbAdmin.firestore.Timestamp.now()
怎样才合适
A 类 shared 软件包:通用,对Aglyn的模型一无所知,它没有进口其他Aglyn软件包。 共享软件包可能只导入其他共享软件包,它们没有插件的域名. 在单体中,它被 @aglyn/tenant-data-admin,行政SDK数据层.
许可证
阿帕奇2.0 (英语). 资料来源: https://github.com/aglyn/aglyn/tree/main/libs/shared/util/fbserver 页面存档备份,存于互联网档案馆