Node.js 创建firebase admin的多个实例
我有多个Firebase数据库,我想创建一个连接到所有数据库的管理员。要初始化应用程序,我首先需要Firebase管理模块并初始化应用程序。如果我使用不同的凭据再次运行此应用程序,它仍将仅初始化一个应用程序Node.js 创建firebase admin的多个实例,node.js,firebase,firebase-realtime-database,Node.js,Firebase,Firebase Realtime Database,我有多个Firebase数据库,我想创建一个连接到所有数据库的管理员。要初始化应用程序,我首先需要Firebase管理模块并初始化应用程序。如果我使用不同的凭据再次运行此应用程序,它仍将仅初始化一个应用程序 var admin = require("firebase-admin"); ... Object.keys(config).map(function (k, i){ var c = config[k]; var serviceAccount = require(c.credenti
var admin = require("firebase-admin");
...
Object.keys(config).map(function (k, i){
var c = config[k];
var serviceAccount = require(c.credential);
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
apiKey: c.apiKey,
authDomain: c.authDomain,
databaseURL: c.databaseURL,
storageBucket: c.storageBucket
}, c.name);
...
}
这不行!即使有两种配置,也只有一个应用程序被初始化。解决了这个问题
var app = admin.initializeApp({... })
var db = admin.database(app);
有关更多详细信息,请查看Firebase Admin SDK安装指南的文档。还应将“app”添加为第二个参数:var app=Admin.initializeApp({…},'app');虽然这不是公认的答案,但这对meThis有效,毫无疑问,应该是公认的答案,因为它显示了初始化后如何使用这些方法
// Initialize the default app
firebase.initializeApp(defaultAppConfig);
// Initialize another app with a different config
var otherApp = firebase.initializeApp(otherAppConfig, "other");
console.log(defaultApp.name); // "[DEFAULT]"
console.log(otherApp.name); // "other"
// Use the shorthand notation to retrieve the default app's services
var defaultAuth = firebase.auth();
var defaultDatabase = firebase.database();
// Use the otherApp variable to retrieve the other app's services
var otherAuth = otherApp.auth();
var otherDatabase = otherApp.database();