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

Flutter Android端Firebase推送异常:APP内发送无响应

Android FCM通知接收问题排查与修复

针对你遇到的Android端APP内发起通知无法接收的问题,可从以下几个关键点排查修复:

1. 修正FCM API端点

必须使用官方Legacy FCM API端点,移除第三方测试地址:

const messageAndroidUrl = "https://fcm.googleapis.com/fcm/send";

https://api.rnfirebase.io/messaging/send是React Native Firebase专属测试端点,不支持自定义请求调用。

2. 清理请求体中的重复目标字段

请求体同时包含to和token字段会导致FCM解析异常,二选一保留即可(Legacy API推荐用to字段):

body: jsonEncode(
  <String, dynamic>{
    'notification': <String, dynamic>{
      'body': serviceName,
      'title': 'Nueva Solicitud',
    },
    'priority': 'high',
    'data': <String, dynamic>{
      'click_action': 'FLUTTER_NOTIFICATION_CLICK',
      'id': '1',
      'status': 'done'
    },
    'to': authorizedSupplierTokenId, // 保留此字段,删除'token'字段
  },
),

3. 完善错误日志排查

代码未捕获输出请求错误与响应信息,无法定位FCM返回的具体问题,修改后便于排查:

try {
  http.Response response = await http.post(...);
  print("FCM请求状态码: ${response.statusCode}");
  print("FCM响应内容: ${response.body}");
} catch (e) {
  print("FCM请求错误: $e");
}

通过日志可快速定位密钥无效、token过期、请求格式错误等问题。

4. 验证服务器密钥有效性

确保messageKey是Firebase控制台项目设置 > 云消息传递下的服务器密钥(非Legacy服务器密钥),密钥错误会返回401 Unauthorized状态码。

5. 确认AndroidManifest配置

虽测试活动能接收通知,仍需确认MainActivity中配置了正确的点击事件过滤器:

<intent-filter>
  <action android:name="FLUTTER_NOTIFICATION_CLICK" />
  <category android:name="android.intent.category.DEFAULT" />
</intent-filter>

完成以上调整后,重新测试APP内发起的通知发送,即可正常接收。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 02:01:09