You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Expo SDK 48升级后Firebase Auth登录状态丢失问题求助

Expo SDK 48 刷新后自动退出登录的排查方案

以下是针对你遇到问题的具体排查和解决步骤:

  • 显式配置Firebase Auth持久化策略
    Firebase Auth默认的持久化逻辑可能在Expo SDK48环境下未正确生效,需要手动指定持久化方式。根据运行环境(Web/原生)添加对应配置:

    import { getAuth, setPersistence, browserLocalPersistence, asyncLocalPersistence } from 'firebase/auth';
    import { initializeApp } from 'firebase/app';
    import { Platform } from 'react-native';
    
    const firebaseConfig = { /* 你的Firebase配置 */ };
    const app = initializeApp(firebaseConfig);
    const auth = getAuth(app);
    
    // Web环境使用browserLocalPersistence,原生环境使用asyncLocalPersistence
    const persistence = Platform.OS === 'web' ? browserLocalPersistence : asyncLocalPersistence;
    setPersistence(auth, persistence)
      .catch(err => console.error('持久化配置失败:', err));
    
  • 确认原生环境依赖安装
    若在React Native原生环境运行,Firebase Auth依赖@react-native-async-storage/async-storage实现持久化。SDK48可能需要手动安装该依赖:

    expo install @react-native-async-storage/async-storage
    
  • 检查Firebase Auth实例的单例性
    确保Firebase Auth实例是全局单例,避免每次页面刷新时重复初始化导致状态丢失。建议将Auth初始化逻辑抽离到单独的模块文件中,导出唯一实例供全局使用。

  • 清除缓存并重新测试

    • Web环境:清除浏览器的站点数据(包括localStorage)后重新登录测试。
    • 原生环境:卸载应用后重新安装,或通过Expo Dev Client清除缓存后测试。
  • 验证依赖版本兼容性
    再次确认安装的Firebase版本与SDK48完全兼容,运行以下命令重新安装适配版本:

    npx expo install firebase --fix
    

内容的提问来源于stack exchange,提问作者r3dm4n

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 05:22:09