You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native初始化两个Firebase实例报错:默认应用已存在

Firebase初始化多实例报错原因解析

报错原因

调用initializeApp()初始化Firebase实例时,如果不传入第二个参数指定应用名称,Firebase会默认将该实例命名为[DEFAULT]。

你的代码里先通过initializeApp(firebaseConfig1)创建了名为[DEFAULT]的实例;紧接着又调用initializeApp(firebaseConfig2),同样没指定自定义名称,Firebase尝试再次创建[DEFAULT]实例,但两次配置参数完全不同,因此触发了FirebaseError: Firebase: Firebase App named '[DEFAULT]' already exists with different options or config (app/duplicate-app)错误。

修复方案

要同时初始化多个Firebase实例,必须为第二个及以后的实例指定唯一的自定义名称,修改代码如下:

import { initializeApp, getApps, getApp,} from "firebase/app";
import {
  getFirestore,
  collection,
  getDocs,
  addDoc,
  doc,
  deleteDoc,
  onSnapshot,
} from 'firebase/firestore'

var  firebaseConfig1 = {
  apiKey: "asdas",
  authDomain: "asdasdasd",
  projectId: "sadsad",
  storageBucket: "asdsadsa",
  messagingSenderId: "sadasd",
  appId: "1:66067574271:asdasda"
};
  
var firebaseConfig2 = {
  apiKey: "AIzaSysaQumXvVddASFASAS9dIk",
  authDomain: "ASFASFASFASFASFASFASFAseapp.com",
  projectId: "ASFASAAFAF",
  storageBucket: "ASFAFAS",
  messagingSenderId: "31ASASAFASFFSAFAS6A3",
  appId: "ASF3FASFASASFSASFA0AASFAASFFS"
};
  
// 第一个实例使用默认名称[DEFAULT]
export var app = initializeApp(firebaseConfig1)
// 第二个实例指定自定义名称"creator-app"(名称可自定义,只要唯一即可)
var run = initializeApp(firebaseConfig2, "creator-app")

后续使用第二个实例的服务时,需要明确指定对应的应用实例:

// 获取第二个实例的Firestore服务
const creatorFirestore = getFirestore(run);

// 或者通过应用名称获取实例后再调用服务
const creatorApp = getApp("creator-app");
const creatorFirestore = getFirestore(creatorApp);

内容的提问来源于stack exchange,提问作者Leo Geli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 11:06:03