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

模拟器中获取Expo推送令牌报错:FirebaseApp未初始化

解决Expo + React Native获取推送令牌时FirebaseApp未初始化的问题

可能的原因及解决方案

1. 必须使用自定义开发客户端,不能用Expo Go

Expo Go不包含你的项目专属Firebase配置,在Expo Go里调用getExpoPushTokenAsync必然会触发Firebase初始化失败。解决步骤:

  • 确保已安装EAS CLI:npm install -g eas-cli
  • 构建自定义开发客户端:
    eas build --profile development --platform android
    
  • 将构建好的APK安装到模拟器,再运行项目:
    npx expo start --dev-client
    

2. 验证app.config.ts的配置正确性

检查android字段和extra.eas配置是否完整且匹配:

export default {
  expo: {
    name: "你的项目名",
    slug: "你的项目slug",
    // ...其他基础配置
    android: {
      googleServicesFile: "./google-services.json", // 确保路径指向根目录的配置文件
      package: "com.app.development" // 必须和google-services.json里的package_name完全一致
    },
    extra: {
      eas: {
        projectId: "你的EAS项目ID" // 从EAS Dashboard复制正确的项目ID
      }
    }
  }
};

3. 确认google-services.json的有效性

  • 从Firebase控制台下载的google-services.json必须对应你的项目包名,检查文件内client[0].client_info.android_client_info.package_name是否和app.config.ts里的android.package完全一致。
  • 确保Firebase项目已启用Cloud Messaging服务(在Firebase控制台的"Cloud Messaging"页面确认)。

4. 清理缓存并重新构建

缓存问题可能导致配置未生效:

  • 清理Expo缓存:
    npx expo r -c
    
  • 重新构建开发客户端,确保新的配置被打包进去。

5. 检查模拟器的Google Play服务状态

Android模拟器需要正常运行的Google Play服务:

  • 打开模拟器设置,找到"Apps" -> "Google Play服务",确保版本为最新。
  • 如果模拟器提示Google Play服务需要更新,完成更新后再测试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 10:42:39