解决: 我通过同时将我的工作模块导入我的Firebase配置模块来初始化它们,同时将我的Firebase配置模块导入我的工作模块,从而创建循环依赖!哇,事后看起来很愚蠢,我正在撕扯我的头发!
所以这基本上是这个问题的重复: solving circular dependency in node using requirejs
我首先将工人带到第二个,然后将firebase定义为第二个,因此显然没有在工作模块阶段定义它。
原创--------------------
在我的客户端应用程序中,我倾向于使用一个文件模式来初始化我的Firebase应用程序,然后将该初始化的应用程序导出为模块,然后我可以在其他地方导入。我在我的节点服务器中尝试使用此Firebase管理员,但它仍然未定义。
什么被认为是初始化Firebase Admin应用程序然后在其他模块中使用该实例的最佳做法? 感谢
编辑:添加代码抱歉。我错过了几个步骤,但firebase实例在此文件中运行正常,我只是在导出它时遇到问题。
const admin = require("firebase-admin");
const Admin = admin.initializeApp({
credential: "my_credential",
databaseURL: "my database"
});
module.exports.Admin = Admin;
然后在其他地方我试图导入该管理员并向其添加refs,如:
const firebase = require('../myFirebaseModule);
const Admin = firebase.Admin;
const ref = Admin.database().ref();
但是得到它未定义的错误。或者,如果我尝试从包中提取firebase admin而不是在另一个文件中提取我的模块,例如
const admin = require("firebase-admin");
它说我需要初始化它。欢呼声。