React项目连接Firebase Firestore提示无法连接后端错误,求解决方案
问题解决步骤
报错核心原因:Firebase配置中的
projectId读取结果为undefined,导致无法定位到对应的Firebase项目
- 修正环境变量命名规则
如果你使用的是Create React App创建的项目,所有客户端可访问的环境变量必须以REACT_APP_为前缀,否则不会被注入到前端代码中。
你需要修改.env文件里的变量命名,比如:
- 修正环境变量命名规则
REACT_APP_FIREBASE_APIKEY=你的实际值 REACT_APP_FIREBASE_AUTHDOMAIN=你的实际值 REACT_APP_FIREBASE_PROJECTID=你的实际值 # 其余变量同理都加上REACT_APP_前缀
同时修改firebase.js里的配置读取逻辑:
const firebaseConfig = { apiKey: process.env.REACT_APP_FIREBASE_APIKEY, authDomain: process.env.REACT_APP_FIREBASE_AUTHDOMAIN, databaseURL: process.env.REACT_APP_FIREBASE_DATABASEURL, projectId: process.env.REACT_APP_FIREBASE_PROJECTID, storageBucket: process.env.REACT_APP_FIREBASE_STORAGEBUCKET, messagingSenderId: process.env.REACT_APP_FIREBASE_MESSAGINGSENDERID, appId: process.env.REACT_APP_FIREBASE_APPID };
- 确认.env文件位置
确保你的.env文件放在项目根目录,和package.json同级,不要放在src文件夹或者其他子目录下。
- 确认.env文件位置
- 重启开发服务器
修改环境变量后必须重启本地开发服务,新的环境变量才会生效。
- 重启开发服务器
- 临时测试方案
如果修改后还是报错,可以先把真实的Firebase配置值直接写到firebaseConfig对象里(不要用环境变量),测试是否能正常连接,如果可以连接则100%是环境变量配置问题。
- 临时测试方案
- 额外代码提示
你注释掉的getWorks方法里有个拼写错误:querySnapshot.foreach应该改为querySnapshot.forEach(c大写),否则后续启用该方法时会触发函数不存在的报错。
内容的提问来源于stack exchange,提问作者amepro
相关产品推荐
相关产品推荐

