Enviar FCM a través de un proxy no enruta la conexión del teléfono
Separe la ruta de Admin API de Firebase de la conexión de red FCM persistente del dispositivo Android receptor.
Un backend puede enviar correctamente una solicitud de Firebase Cloud Messaging a través de un proxy corporativo mientras un dispositivo Android nunca recibe la notificación. La solicitud de Admin API del backend y la conexión FCM del dispositivo son rutas distintas.
Las guías de red de Firebase indican que el protocolo de dispositivo de FCM no se puede enrutar a través de un proxy de red. Configurar un cliente HTTP en el emisor no convierte esa conexión persistente del dispositivo en una solicitud de proxy HTTP.
Para los dispositivos Android, los puertos TCP de destino documentados son 5228, 5229, 5230 y 443. FCM normalmente usa 5228, y los otros puertos también están disponibles. Aplique la política correspondiente en la red donde se conectan los dispositivos receptores.
Utilice las guías publicadas de nombres de host de Firebase cuando un cortafuegos restrinja los destinos; desaconsejan las listas de IP permitidas fijas porque las direcciones pueden cambiar. Los dispositivos también necesitan DNS funcional y una ruta estable para su conexión de larga duración.
Si el emisor falla durante la obtención del token o una solicitud de Admin API, diagnostique ese transporte HTTP del lado del servidor. Para las interfaces HTTP de Firebase Admin Java, configure juntos los transportes de la API y de las credenciales. Si el envío se realiza correctamente pero la entrega falla, conserve ese resultado e investigue la ruta del dispositivo en lugar de sustituir repetidamente las credenciales de proxy del backend.