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

Firebase报[DEFAULT]应用重复及Firestore无法连接后端问题求助

问题排查与修复

第一个报错(重复应用实例)的原因

触发app/duplicate-app报错的核心问题是代码逻辑错误:

  • 混淆了Firebase配置对象和初始化后的应用实例:firebaseConfig本应为纯配置JSON对象,你提前用模块化的initializeApp执行了一次初始化,已经生成了[DEFAULT]应用实例
  • 重复调用初始化方法:之后又用Compat版本的firebase.initializeApp传入已经初始化的实例,相当于尝试用错误参数二次创建同名默认应用,直接触发重复创建报错

第二个报错(权限拒绝)的原因

删除第一次initializeApp调用后,初始化逻辑本身是正确的,出现permission-denied属于以下两种情况之一:

  • 你当前使用的disneyplus-clone-a33d5是公开教程里的演示项目,不属于你自己的Firebase账号,你没有该项目的Firestore访问权限
  • 如果是你自己创建的项目,默认的Firestore安全规则会拒绝所有未授权的访问,需要调整安全规则配置

修复代码

建议统一使用Compat模式匹配你现有导入逻辑,避免混用模块化API和CompatAPI,同时添加重复初始化判断,适配热重载等场景:

import firebase from 'firebase/compat/app';
import 'firebase/compat/auth';
import 'firebase/compat/firestore';
import 'firebase/compat/storage';

// 仅保留纯配置对象,不要提前调用initializeApp
const firebaseConfig = {
  apiKey: "AIzaSyA9BnlX96fMf7XiUVCFRsoQzG8DGERJkeY",
  authDomain: "disneyplus-clone-a33d5.firebaseapp.com",
  projectId: "disneyplus-clone-a33d5",
  storageBucket: "disneyplus-clone-a33d5.appspot.com",
  messagingSenderId: "37918794208",
  appId: "1:37918794208:web:dbe9842dfe1dda522a4b85",
  measurementId: "G-DRVLJKWRWG",
};

// 初始化前先判断是否已经存在默认应用,避免重复初始化
const firebaseApp = !firebase.apps.length 
  ? firebase.initializeApp(firebaseConfig) 
  : firebase.app();

const db = firebaseApp.firestore();
const auth = firebase.auth();
const provider = new firebase.auth.GoogleAuthProvider();
const storage = firebase.storage();

export { auth, provider, storage };
export default db;

权限报错后续处理

如果修复代码后仍然出现权限拒绝提示:

  • 优先替换为你自己的Firebase项目配置,不要直接复制公开教程里的第三方项目配置
  • 如果是自有项目,开发阶段可临时将Firestore安全规则调整为测试模式(上线前必须修改为符合业务逻辑的权限规则):
rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if true;
    }
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 13:15:04