使用Firebase时出现Invariant Violation及ReferenceError问题求助
解决Firebase初始化错误及"main"未注册问题
1. 修复ReferenceError: Property 'initializeApp' doesn't exist错误
你的Firebase配置文件存在两处关键问题:
- 直接调用的
initializeApp方法未正确关联到导入的Firebase对象 - Firestore的compat版本导入路径错误
修正后的database/firebase文件代码:
import firebase from "firebase/compat/app"; // 修正Firestore的compat模式导入路径 import "firebase/compat/firestore"; const firebaseConfig = { apiKey: "AIzaSyDtHTodTxYPLVHzy8GRVLAFWLPxCwHDGdA", authDomain: "calendar-app-2baab.firebaseapp.com", projectId: "calendar-app-2baab", storageBucket: "calendar-app-2baab.appspot.com", messagingSenderId: "257098776368", appId: "1:257098776368:web:40acf9bd1df66a8df392f5", }; // 通过firebase对象调用initializeApp方法 const app = firebase.initializeApp(firebaseConfig); // 同样通过firebase对象调用firestore const db = firebase.firestore(); export default { firebase, db, };
2. 修复Invariant Violation: "main" has not been registered错误
- 检查App路径:确认
AppEntry.js中import App from '../../App'的路径是否正确,确保App.js确实位于当前文件目录的上两级目录中。路径错误会导致无法加载根组件,触发该错误。 - 确认Metro启动目录:关闭当前Metro服务,回到项目根目录重新运行
npx expo start。在子目录启动Metro会导致入口文件解析失败。 - 清理Metro缓存:运行
npx expo start --clear清除旧缓存,避免缓存导致的路径解析异常。
内容的提问来源于stack exchange,提问作者MrJonesBones
相关产品推荐
相关产品推荐

