優先度パラメーターを高く設定して、1 つのトピックにサブスクライブしている少数のデバイス グループ (5 未満) にプッシュ メッセージを送信しています。
優先度高。FCM は、優先度の高いメッセージをすぐに配信しようとします。これにより、FCM サービスは可能な場合にスリープ状態のデバイスを復帰させ、アプリ サーバーへのネットワーク接続を開くことができます。たとえば、インスタント メッセージング、チャット、または音声通話アラートを備えたアプリは、通常、ネットワーク接続を開き、FCM がデバイスにメッセージを遅滞なく配信することを確認する必要があります。メッセージがタイムクリティカルで、ユーザーの即時の操作が必要な場合にのみ、優先度を高く設定します。ただし、メッセージの優先度を高く設定すると、通常の優先度のメッセージよりもバッテリーの消耗が大きくなることに注意してください。
しかし、デバイスを IDLE 状態にすると、大きな遅延が発生します。Nougat 7.1 では、遅延は 10 分以上です。このタイプのプッシュには、10 秒未満の遅延が必要です。
0 に設定time_to_live
すると、Marshmallow でのみ問題が解決します。ヌガーはまだ失敗しています。
したがって、問題の考えられる原因は3つしかありません
トピックに送信されたメッセージの優先度を高くすることはできません。ただし、各デバイスに個別のメッセージを送信すると、アプリ サーバーの負荷が増加します。Firebase データベースから新しいトークンをロードする必要があるため、結果は - 1 ではなく 5 ユーザーに対して 10 の http リクエストになります。
アプリはホワイトリストに登録されている必要があります。しかし、ドキュメントによると、FCM を使用している場合は受け入れられません。そして、バッテリーの消耗を引き起こすので、私はそれを望んでいません。
バグ?https://github.com/firebase/quickstart-android/issues/100
本当の原因が最初にある場合、なぜそれがドキュメントに記載されていないのですか?