后端可以通过企业代理成功发送 Firebase Cloud Messaging 请求,而 Android 设备却始终收不到通知。后端的 Admin API 请求与设备的 FCM 连接是两条不同的路径。

Firebase 的网络指南指出,FCM 的设备协议无法通过网络代理转发。在发送端配置 HTTP 客户端,并不会把那条常驻的设备连接变成 HTTP 代理请求。

对于 Android 设备,文档中记载的 TCP 目标端口是 5228、5229、5230 和 443。FCM 通常使用 5228,其他端口也可用。请在接收设备所连接的网络中应用相应策略。

当防火墙限制目标地址时,请使用 Firebase 公布的域名指引;该指引不建议使用固定 IP 允许列表,因为地址可能变化。设备还需要可用的 DNS 以及一条稳定的路径来维持其长连接。

如果发送端在获取令牌或执行 Admin API 请求时失败,请诊断该服务端 HTTP 传输。对于 Firebase Admin Java 的 HTTP 接口,同时配置 API 传输与凭据传输。如果发送成功但投递失败,请保留该结果并排查设备侧路径,而不是反复更换后端的代理凭据。

相关文章