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

Android构建变体下Firebase Cloud Messaging无法正常工作

Firebase多Flavor推送问题排查方案

我来帮你解决这个Firebase推送的问题,结合你的配置和遇到的症状,大概率是多环境下的配置匹配出了问题,给你几个具体的排查和修复方向:

1. 检查google-services.json的Flavor目录配置

你现在把json放在app/google-services.json,但因为用了productFlavors,Android Studio会优先读取对应flavor目录下的配置文件。正确的做法是:

  • 把nl.companyname.acc项目的google-services.json放到app/src/acceptance/google-services.json
  • 把nl.companyname项目的google-services.json放到app/src/production/google-services.json

这样构建不同flavor时,会自动加载对应环境的Firebase配置。你之前只替换了根目录的json,acceptance环境可能还是在使用旧的配置。

验证方法:构建acceptance flavor后,打开app/build/generated/res/google-services/acceptance/debug/values/values.xml,查看google_app_id是否和Firebase nl.companyname.acc项目里的App ID完全一致。

2. 确认Flavor的applicationId与Firebase包名完全匹配

你的acceptance flavor设置了applicationIdSuffix ".acc",最终生成的包名是nl.companyname.acc,一定要确保Firebase控制台里nl.companyname.acc项目的应用包名完全一致——注意大小写、后缀有没有多打或少打字符,包名不匹配会直接导致推送失败。

你可以去Firebase控制台的「项目设置」→「应用」里,核对包名是否和acceptance构建后的applicationId一致。

3. 确保测试用的是对应Flavor的设备Token

两个Firebase项目的设备Token是不互通的:

  • production flavor生成的Token只能用于nl.companyname项目的推送
  • acceptance flavor生成的Token才能用于nl.companyname.acc项目的推送

测试前可以在app里加日志,打印当前的BuildConfig.APPLICATION_ID和Firebase Token,确认你用来测试推送的Token是acceptance环境生成的。

4. 验证Firebase Cloud Messaging服务配置

  • 登录Firebase控制台,确认nl.companyname.acc项目已经启用了Cloud Messaging服务
  • 查看「Cloud Messaging」标签页里的服务器密钥和发送者ID是否有效,没有被禁用或修改
  • 直接用Firebase控制台的「发送测试消息」功能,输入acceptance环境的设备Token测试,排除服务器端配置的问题

5. 清理构建缓存重新构建

有时候Android Studio的构建缓存会残留旧配置,导致新的json文件不生效。你可以执行:
File -> Invalidate Caches... -> Invalidate and Restart
然后重新构建acceptance flavor的app,再测试推送。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:11:24