プロキシ経由の 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 と認証情報のトランスポートをまとめて構成します。送信は成功したのに配信が失敗する場合は、その結果を保持し、バックエンドのプロキシ資格情報を繰り返し交換するのではなく、端末側の経路を調査してください。