Expo Snack中Firebase依赖解析失败:无法解析firebase@10.12.1
Expo Snack中Firebase依赖解析失败的解决办法
问题描述
在Expo Snack开发React Native应用时,安装任何版本的Firebase(包括之前可用的8.0.0版)都提示:Failed to resolve dependency 'firebase@x.x.x' (Network request failed)
解决步骤
1. 排查网络环境
Snack依赖npm仓库拉取包,可能是你的网络代理、防火墙限制了访问,或者Snack的依赖服务器临时故障。可以试试切换到手机热点,或者隔一段时间再重试。
2. 改用Expo适配的Firebase包
直接安装官方firebase包在Snack里容易出现兼容性问题,建议用Expo官方维护的expo-firebase-*系列包,这些是专门适配Expo环境的:
- 修改
package.json的依赖项:
{ "dependencies": { "expo": "~48.0.0", "react": "18.2.0", "react-dom": "18.2.0", "react-native": "0.72.4", "expo-firebase-core": "~16.0.1", "expo-firebase-firestore": "~17.0.1", "@babel/runtime": "^7.18.9" }, "devDependencies": { "@types/react": "~17.0.21", "@types/react-native": "~0.64.12", "typescript": "~4.3.5" } }
- 调整Firebase初始化代码:
import firebase from 'expo-firebase-app'; import 'expo-firebase-firestore'; const firebaseConfig = { apiKey: "", authDomain: "", projectId: "", storageBucket: "", messagingSenderId: "", appId: "" }; // 避免重复初始化 if (!firebase.apps.length) { firebase.initializeApp(firebaseConfig); } const db = firebase.firestore(); export { db };
3. 清理Snack缓存
在Snack编辑器右上角的菜单中选择「Clear Cache」,重新加载项目后再尝试安装依赖,有时候缓存会导致依赖解析异常。
4. 确认版本兼容性
确保所选的Firebase相关包版本和你的Expo版本(48.0.0)匹配:
- Expo 48对应的
expo-firebase-core版本是16.x,expo-firebase-firestore是17.x,上面的配置已经匹配,不要随意升级或降级。
内容的提问来源于stack exchange,提问作者Sidra Saleem
相关产品推荐
相关产品推荐

