我需要开发一个聚合管理Web应用程序,需要连接到不同的firebase项目数据库(不同的谷歌帐户)。是否可以通过javascript动态切换到不同的firebase项目数据库?
答案 0 :(得分:4)
要访问代码中动态确定的数据库,请设置托管数据库的项目的配置数据。
var config = {
apiKey: "<API_KEY>",
authDomain: "<PROJECT_ID>.firebaseapp.com",
databaseURL: "https://<DATABASE_NAME>.firebaseio.com",
storageBucket: "<BUCKET>.appspot.com",
};
var database = firebase.database();
var secondaryAppConfig = {
apiKey: "<ANOTHER_API_KEY>",
authDomain: "<ANOTHER_PROJECT_ID>.firebaseapp.com",
databaseURL: "https://<ANOTHER_DATABASE_NAME>.firebaseio.com",
storageBucket: "<ANOTHER_BUCKET>.appspot.com",
};
// Initialize another app with a different config
var secondary = firebase.initializeApp(secondaryAppConfig, "secondary");
// Retrieve the database.
var secondaryDatabase = secondary.database();
现在根据您的应用特定的条件进行选择:
var db = my_condition ? database : secondaryDatabase;
答案 1 :(得分:1)
我假设您可以自由创建一个名为Router(或任何您想要的)的新firebase,并默认情况下让用户登录(auth)。然后根据条件,发送该特定用户所需环境的配置。
eg:
{
"env":{
"e1":{
apiKey: "<API_KEY>",
authDomain: "<PROJECT_ID>.firebaseapp.com",
databaseURL: "https://<DATABASE_NAME>.firebaseio.com",
storageBucket: "<BUCKET>.appspot.com"
},
"e2":{
apiKey: "<API_KEY2>",
authDomain: "<PROJECT_ID2>.firebaseapp.com",
databaseURL: "https://<DATABASE_NAME2>.firebaseio.com",
storageBucket: "<BUCKET2>.appspot.com"
}
}
}