2016-11-08 5 views
1

GCMプロジェクトをFirebaseに移行しましたが、今度はonMessageReceivedが動作するときに頭を抱えています。この状況をFirebaseごとに処理する方法を考えようとしています。ドキュメンテーション;削除された(折りたたまれた)メッセージのFirebase通知の値が返されました

折りたたまずに保存できるメッセージは100個までです。制限に達すると、格納されているすべてのメッセージは破棄されます。デバイスがオンラインに戻ると、デバイスは限界に達したことを示す特別なメッセージを受信します。アプリは、通常、アプリケーションサーバーから完全な同期を要求することで、状況を適切に処理できます。

GCM用の既存のコードが動作し、このような特別なメッセージが表示されます。

public void onReceive(Context context, Bundle bundle) { 

    // Pick up various parameters here 
    String nhMSG0124 = bundle.getString("information"); 
    ... 

    // Check for special message when limit of 100 messages   
    // that can be stored without collapsing is exceeded 
    // message_type value is always the string "deleted_messages" 
    // total_deleted value is a string with the number of deleted messages 

    String gcm_message_type = bundle.getString("message_type"); 
    String gcm_total_deleted = bundle.getString("total_deleted"); 
    if (gcm_message_type... 
          do something else here 

私はしかし、私が削除されたメッセージ機能が何であるか、またはフラグが通知自体にあるかどうかだけでわからない、コードは次のようになります推測し、これまでのFCMのドキュメントに何かを見つける何の成功を収めていなかっましたまたはデータ内に存在する。

誰かがこれを理解しましたか?

助けてください、歓声!

答えて

0

私はこれをソートしていると思います。 Firebaseのドキュメントを再読み込みすると、メッセージの削除によってMESSAGING_EVENTが発生するのに対し、GCMは通知のバンドルで特別なパラメータを使用したようです。

public void onDeletedMessages() 
    then do process... 

    Called when GCM server deletes pending messages due to exceeded storage limits, 
    for example, when the device cannot be reached for an extended period of time. 

https://firebase.google.com/docs/reference/android/com/google/firebase/messaging/FirebaseMessagingService

テスト済みのアプリと解くと確認...!

関連する問題