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

Flutter Android Firebase通知Release模式无法接收问题求助

排查Release模式下FCM通知接收失败的可能遗漏点

以下是针对你问题的几个关键排查方向:

  • 核对Google Play应用签名的SHA1证书
    如果你启用了Google Play App Signing,Firebase后台需要添加的是Play控制台「应用签名」页面里的应用签名证书SHA1和上传证书SHA1,而非你本地用于签名APK的密钥SHA1。确认这两个SHA1都已正确添加到Firebase对应应用的设置中。

  • 确保google-services.json生效于Release构建
    即使你下载了新的配置文件,也要检查:

    • 它是否替换了项目app目录下的旧文件
    • 构建脚本(如gradle)中是否没有针对Release模式指定旧的配置路径
    • 打包Release APK/AAB时,是否确实打包了最新的google-services.json
  • 添加FCM相关的ProGuard/R8混淆规则
    Release模式下的代码混淆可能破坏FCM的核心类,导致无法接收通知。在proguard-rules.pro中添加以下规则:

    -keep class com.google.firebase.messaging.** { *; }
    -keep class com.google.firebase.iid.** { *; }
    -keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable {
        public static final *** NULL;
    }
    -keepnames class com.google.android.gms.common.internal.safeparcel.SafeParcelable
    -keepnames @com.google.android.gms.common.annotation.KeepName class *
    -keepclassmembers class * {
        @com.google.android.gms.common.annotation.KeepName *;
    }
    
  • 确认通知渠道配置
    Android 8.0及以上版本必须创建通知渠道才能显示通知。检查你的Release版本是否在启动时正确初始化了通知渠道,并且AndroidManifest.xml中指定了默认渠道ID:

    <meta-data
        android:name="com.google.firebase.messaging.default_notification_channel_id"
        android:value="@string/default_notification_channel_id" />
    
  • 验证FCM Token的环境一致性
    Debug和Release版本的应用会生成不同的FCM Token,确认后端发送通知时使用的是Release版本应用获取的Token,而非Debug环境的Token。

  • 检查Firebase API密钥的限制规则
    确认Firebase中自动创建的Android API密钥的限制是否正确:

    • 包名必须与Play控制台的应用包名完全一致(大小写敏感)
    • 已添加所有必要的SHA1证书(应用签名、上传证书、本地调试证书)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 06:45:37