Expo React Native集成Firebase GoogleSignIn遇auth导入错误求助
解决@react-native-firebase/auth导入auth对象的错误
1. 确认依赖安装与初始化是否正确
- 确保已安装
@react-native-firebase/app和@react-native-firebase/auth,并完成Expo配置:npx expo install @react-native-firebase/app @react-native-firebase/auth - 检查
app.json的plugins字段是否添加了Firebase相关配置:"plugins": [ "@react-native-firebase/app", "@react-native-firebase/auth" ] - 清除缓存并重启开发服务器:
npx expo start --clear
2. 尝试正确的导入方式
不同版本的包导入逻辑有差异,试试以下几种写法:
方式一:从auth包直接导入auth函数
import { auth } from '@react-native-firebase/auth'; // 初始化auth实例 const authInstance = auth();
方式二:从firebase app实例获取auth
import firebase from '@react-native-firebase/app'; const authInstance = firebase.auth();
方式三:默认导入auth模块
import auth from '@react-native-firebase/auth'; const authInstance = auth();
3. 检查包版本兼容性
- 查看
package.json中@react-native-firebase/app和@react-native-firebase/auth的版本是否一致,版本不匹配会导致此类错误。若不一致,升级/降级到相同版本:
替换npm install @react-native-firebase/app@x.x.x @react-native-firebase/auth@x.x.xx.x.x为对应稳定版本号,建议使用最新兼容版本。
4. 适配Expo运行环境
- 确认Expo SDK版本与
@react-native-firebase包版本兼容,参考官方版本对应关系。 - Expo Go不包含原生Firebase模块,若使用Expo Go测试,需改用自定义开发客户端:
npx eas build --profile development --platform android/ios
5. 排查代码时序问题
- 避免在组件挂载前直接调用auth对象,确保初始化完成后再使用,比如在
useEffect中执行:import { useEffect } from 'react'; import { auth } from '@react-native-firebase/auth'; function LoginScreen() { useEffect(() => { const authInstance = auth(); // 后续登录逻辑 }, []); // ... } - 检查是否存在拼写错误,比如误写为
Auth等。
内容的提问来源于stack exchange,提问作者Guian
相关产品推荐
相关产品推荐

