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

関連記事