在节点模块中初始化 Firebase Admin SDK

问题描述

我相信我因为在 Cloud Functions 打字稿项目上初始化管理 Firebase SDK 遇到困难而变得疯狂。

我有一个主项目和一个类似于这个的结构:

main-project - index.ts
               node_modules - depA - index.ts
                              node_modules - debB - index.ts

项目和依赖项都需要使用管理 SDK 执行操作,但我正在疯狂地试图理解为什么我无法正确部署我的功能 .

初审: admin.initializeApp() 仅在我的主项目中:编译器抱怨

错误认 Firebase 应用不存在。请确保在使用任何 Firebase 服务之前调用 initializeApp()。

二审: admin.initializeApp() 仅在我的主项目中:编译器抱怨相反的原因

错误认 Firebase 应用已存在。这意味着您多次调用 initializeApp() 而不提供应用程序名称作为第二个参数。在大多数情况下,您只需要调用 initializeApp() 一次。但是,如果您确实想初始化多个应用程序,请将第二个参数传递给 initializeApp() 以给每个应用程序一个唯一的名称

我也有一个 Trial #0,我有一个自定义逻辑来检查是否有任何管理应用程序被初始化并最终初始化。就这么简单:

if (!initDone) {
    
    initDone = true;

    // Init here
}

通过这种方法,我能够部署到云端,但我真的想弄清楚模块加载和管理初始化背后的逻辑,以避免将来出现任何部署和配置错误。 admin init 是全局的还是每个模块一次?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...