Expo Snack(React Native)项目导入Firebase时出现报错求助

开发带身份认证功能的应用、在Expo Snack中导入Firebase时触发上述报错,可按以下方案逐一排查修复:
- 优先解决版本兼容问题:Expo Snack的沙箱运行环境对新版Firebase JS SDK的ESM模块适配存在已知问题,不要安装v10及以上版本的Firebase,直接在Snack依赖面板添加
firebase@9.23.0即可,这个版本是目前验证过跨Web、iOS、Android预览端都能稳定支持Auth模块的版本。 - 修正导入语法:v9版本的Firebase是模块化写法,禁止用旧版的全量导入写法
import firebase from 'firebase',标准初始化写法参考:
import { initializeApp } from 'firebase/app'; import { getAuth } from 'firebase/auth'; // 替换为你自己Firebase后台的项目配置参数 const firebaseConfig = { apiKey: "", authDomain: "", projectId: "", storageBucket: "", messagingSenderId: "", appId: "" }; const app = initializeApp(firebaseConfig); export const auth = getAuth(app);
- 清理沙箱缓存:改完依赖和代码如果还是报模块找不到的错误,点编辑器右上角的更多菜单,选择
Clear cache and reload重启沙箱,大部分缓存导致的解析错误会直接消失。 - 避开不兼容依赖:不要在Snack里引入
@react-native-firebase/*系列的原生依赖包,这类包需要原生编译环境,Expo Snack的在线沙箱不支持,纯JS实现的firebase包才是适配Snack的正确选择。
内容的提问来源于stack exchange,提问作者PacMan314159
相关产品推荐
相关产品推荐

