Um backend pode enviar com êxito um pedido do Firebase Cloud Messaging através de um proxy empresarial enquanto um dispositivo Android nunca recebe a notificação. O pedido do Admin API do backend e a conexão FCM do dispositivo são caminhos separados.

As orientações de rede do Firebase afirmam que o protocolo de dispositivo do FCM não pode ser encaminhado através de um proxy de rede. Configurar um cliente HTTP no remetente não converte essa conexão persistente do dispositivo num pedido de proxy HTTP.

Para dispositivos Android, as portas TCP de destino documentadas são 5228, 5229, 5230 e 443. O FCM utiliza normalmente a 5228, e as outras portas também estão disponíveis. Aplique a política relevante na rede onde os dispositivos recetores se ligam.

Utilize as orientações publicadas do Firebase sobre nomes de anfitrião quando uma firewall restringe destinos; desaconselham listas fixas de IP permitidos porque os endereços podem mudar. Os dispositivos também precisam de DNS funcional e de um caminho estável para a sua ligação de longa duração.

Se o remetente falhar durante a obtenção do token ou um pedido ao Admin API, diagnostique esse transporte HTTP do lado do servidor. Para as interfaces HTTP do Firebase Admin Java, configure em conjunto os transportes da API e das credenciais. Se o envio for bem-sucedido mas a entrega falhar, preserve esse resultado e investigue o caminho do dispositivo em vez de substituir repetidamente as credenciais de proxy do backend.

Artigos relacionados