Expo设备FCM推送通知异常求助:无法获取推送令牌
解决FCM设备推送令牌获取失败问题
检查项目配置与文件一致性
- 确认
app.json/app.config.js中android.googleServicesFile路径正确,指向从Firebase控制台下载的、匹配包名com.ikechia.v1_transport_mobile的最新google-services.json文件 - 核对
expo-notifications版本与当前Expo SDK版本兼容,执行npm list expo-notifications查看版本,不兼容则调整到对应版本
- 确认
调整Firebase初始化方式
- Expo Managed项目无需手动调用
initializeApp(firebaseConfig),手动初始化会触发冲突,直接移除该代码 - 若为Bare Workflow项目,需在Android原生代码中初始化:
- 打开
android/app/src/main/java/com/ikechia/v1_transport_mobile/MainApplication.java - 在
onCreate方法开头添加代码:FirebaseApp.initializeApp(this); - 确认
android/build.gradle已引入Firebase BOM依赖:dependencies { implementation platform('com.google.firebase:firebase-bom:32.7.0') implementation 'com.google.firebase:firebase-messaging' }
- 打开
- Expo Managed项目无需手动调用
清理缓存并重建项目
- 执行
npx expo start --clear清理Expo缓存 - 若为Bare项目,进入
android目录运行./gradlew clean清除构建缓存,再执行npx expo prebuild --clean重新生成原生文件 - Managed项目重新发布到Expo服务器,确保使用最新配置
- 执行
验证FCM密钥与项目配置
- 登录Expo控制台,确认项目绑定的FCM V1服务器密钥是Firebase控制台“项目设置→云消息传递”下的有效密钥
- 检查Firebase控制台中应用的包名与项目中
android.package完全一致,无拼写或大小写错误
内容的提问来源于stack exchange,提问作者Ike Anya
相关产品推荐
相关产品推荐

