我在同一个项目上有两个 firebase,我需要连接到它们。
有两个 javascript 文件连接到每个 firebase,这看起来没问题。
我都导入了
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 调用还是需要将它们合并在一起?
谢谢
最佳答案
这绝对有可能。您需要为每个创建单独的 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();
有关这方面的更多信息,请查看 using multiple projects in your application 部分在 Firebase 文档中。
关于javascript - Vue-火力地堡 : How to connect to 2 firebases from the same app,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50876214/