Firebase Cloud Messagingのアップストリームメッセージ(デバイスからサーバへのメッセージ)のマニュアルでは、デバイスがオフラインの場合にメッセージが配信される方法について説明しています。FCMのアップストリームメッセージ配信の信頼性はどれくらいですか?
Android:デバイスがオフラインであるか、FCMサービスがサーバーにアップストリームメッセージを転送することが利用できない、Androidのクライアントアプリケーションのインスタンスが20の保留中のメッセージの最大を蓄積することができる場合には
。
iOS:
FCMクライアントライブラリは、クライアントアプリケーションにメッセージをキャッシュし、クライアントがアクティブなサーバ接続を持っているときにそれを送信します。
メッセージを配信する前にアプリを終了したらどうなりますか? Firebaseは、一度接続が復元されると、そのようなメッセージを配信するためにあらゆる種類のバックグラウンドサービスを使用しようとしますか?または、アプリケーションが次に開かれるまでキューに入れられますか、または完全に破棄されますか?
編集:私の実験では、少なくともアプリケーションの再起動後にメッセージを保存する永続的なキューがあります。しかし、私はまだ(各オペレーティングシステム上で)Firebaseメッセージングサービスを実行させる原因がどのような状況にあるのか、特にそのアプリケーションがバックグラウンドになっているかどうかはわかりません。
引用したドキュメントにはキャッシュが記載されていますが、キャッシュが永続的であるかどうかはわかりません。それは、私の実験では、それが証明されていると言いました。私が気にかけているのは、Firebaseメッセージングサービスが実際にどのような状況で生きていて、メッセージを送信しようとしているかです。 (また、TTLに関する無関係の訂正:TTLが含まれていない場合は、デフォルトで0になります。これは、メッセージが瞬時に送信されるか廃棄されることを意味します。) – ArthurDenture
@ArthurDenture私は、Androidの(またはデバイスに応じてiOS)キャッシュの永続性については問題があり、FCMの上流のメッセージ配信ではないと言います。 TTLの場合、[here](https://firebase.google.com/docs/cloud-messaging/concept-options)には、「time_to_live」フラグがセットされていない限り、デフォルトのタイムアウトは4週間となっています*。 –
そのリンクはダウンストリームメッセージを記述します。アップストリームメッセージの場合、[デフォルトのttl値は0です(https://firebase.google.com/docs/reference/android/com/google/firebase/messaging/RemoteMessage.Builder.html#setTtl(int))。 – ArthurDenture