Vue-Firebase:如何从同一个应用程序连接到2个firebases

时间:2018-06-15 13:02:27

标签: javascript firebase firebase-realtime-database vue.js

我在同一个项目中有两个火焰基础,我需要连接到它们。

有两个连接到每个firebase的javascript文件似乎没问题。

我导入了他们两个

  import db from '../FireBase'
  import mdb from '../MissionFireBase'

  let MissionRef = mdb.ref('mission');
  let TeamRef = db.ref('Teams');
  let StartRef = db.ref('start');

db是一个firebase的导出,另一个是mdb。在它自己每个人的作品,但当我尝试使用它们时,我得到一个错误

index.cjs.js?3b8b:360 Uncaught FirebaseError {code: "app/duplicate-app", message: "Firebase: Firebase App named '[DEFAULT]' already exists (app/duplicate-app).", name: "[DEFAULT]", stack: "[DEFAULT]: Firebase: Firebase App named '[DEFAULT]…0)↵    at fn (http://localhost:8080/app.js:89:20)"}

对我而言似乎某个地方firebase获得了一个默认ID,当尝试使用它们时它们都会发生冲突。我尝试从不同的vue组件调用每个,但我得到相同的结果。

firebase连接是这样的

import Firebases from 'firebase'

let config = {

  apiKey: "--",
  authDomain: "--",
  databaseURL: "--",
  projectId: "--",
  storageBucket: "--",
  messagingSenderId: "--"

};

let apps= Firebases.initializeApp(config);
let mdb = apps.database();

export default mdb

这可能吗?我可以使用两个不同的firebase调用,还是需要将它们合并在一起?

由于

1 个答案:

答案 0 :(得分:2)

这绝对有可能。您需要为每个实例创建单独的FirebaseApp实例,然后从中获取数据库。

var secondaryAppConfig = {
    apiKey: "<API_KEY>",
    authDomain: "<PROJECT_ID>.firebaseapp.com",
    databaseURL: "https://<DATABASE_NAME>.firebaseio.com",
    storageBucket: "<BUCKET>.appspot.com",
};
// Initialize another app with a different config
var secondary = firebase.initializeApp(secondaryAppConfig, "secondary");

// Retrieve the database.
var secondaryDatabase = secondary.database();

有关详情,请参阅Firebase文档中的using multiple projects in your application部分。