如何在单应用中初始化两个Firebase实例?电商后台集成报错求助
解决Firebase App重复初始化的错误
这个Firebase: Firebase App named '[DEFAULT]' already exists错误其实很好理解——你代码里初始化了两个Firebase App,但都默认用了[DEFAULT]这个名字,Firebase可不允许同一个标识的App被初始化两次。
看你的代码就能找到问题根源:
// 这里没指定App名称,默认会用[DEFAULT] firebaseAuthOnly.initializeApp(firebaseAuthOnlyConfig); // 这里又初始化了一个默认[DEFAULT]的App,直接触发冲突 firebase.initializeApp(firebaseConfig);
具体修复步骤:
- 给其中一个App指定自定义名称,比如把后台的Auth专用App命名为
auth-admin,让两个App有不同的标识:
// 初始化Auth专用App时明确指定名称 firebaseAuthOnly.initializeApp(firebaseAuthOnlyConfig, 'auth-admin'); // 主站App依然用默认初始化 firebase.initializeApp(firebaseConfig);
- 后续使用Auth专用App的服务时,要明确关联到这个命名的App,避免混淆:
// 把Analytics关联到auth-admin App firebaseAuthOnly.analytics(firebaseAuthOnly.app('auth-admin')); // 把Performance关联到auth-admin App firebaseAuthOnly.performance(firebaseAuthOnly.app('auth-admin')); // 如果要使用这个App的Auth服务,也要这样获取实例 const adminAuth = firebaseAuthOnly.auth(firebaseAuthOnly.app('auth-admin'));
- 主站的Firestore、Storage等服务依然正常用默认App的实例,完全不影响共用数据库的需求:
const db = firebase.firestore(); const storage = firebase.storage();
这样调整后,两个App就不会再冲突了,后台既能用自己的Auth服务,又能顺利共用主站的Firestore数据库,刚好符合你的需求~
内容的提问来源于stack exchange,提问作者phongyewtong
相关产品推荐
相关产品推荐

