백엔드가 기업 프록시를 통해 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와 자격 증명 전송을 함께 구성하세요. 전송은 성공하지만 전달이 실패하면 그 결과를 보존하고 백엔드의 프록시 자격 증명을 반복해서 바꾸는 대신 기기 경로를 조사하세요.

관련 글