通过代理发送 FCM 并不会路由手机的连接
将 Firebase 的 Admin API 路由与接收端 Android 设备的常驻 FCM 网络连接区分开。
后端可以通过企业代理成功发送 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 传输与凭据传输。如果发送成功但投递失败,请保留该结果并排查设备侧路径,而不是反复更换后端的代理凭据。