如何解决@react-native-firebase/app与react-firebase-hooks集成的getAuth报错问题?
问题原因
你混用了两个不兼容的Firebase生态:@react-native-firebase/app是Firebase官方针对React Native的原生封装,而firebase/auth是Web端的模块化API,两者的App实例结构完全不同,所以调用getAuth时会因无法识别RN版实例而抛出错误。
解决方案
要结合@react-native-firebase/app和react-firebase-hooks,必须使用React Native版的Firebase Auth包,而非Web版。具体步骤如下:
- 安装React Native Firebase Auth依赖
npm install @react-native-firebase/auth # 或使用yarn yarn add @react-native-firebase/auth
- 调整代码逻辑,使用RN Firebase的Auth实例
修改你的代码为:
import firebase from '@react-native-firebase/app'; import auth from '@react-native-firebase/auth'; import { useAuthState } from 'react-firebase-hooks/auth'; if (!firebase.apps.length) { firebase.initializeApp(credentials); } // 直接获取RN Firebase的auth实例 const authInstance = auth(); const [user, loading, error] = useAuthState(authInstance);
- 验证适配性
react-firebase-hooks/auth的API设计兼容Firebase Auth的标准实例,RN Firebase的auth实例完全符合这个标准,因此可以正常使用useAuthState等hooks。
内容的提问来源于stack exchange,提问作者Gustavo Soares Martins
相关产品推荐
相关产品推荐

