1

こんにちはすべて私はAndroidでFirebase Push通知を実装しています。私はメッセージを取得しているときを除いて、すべてうまく動作しています、それらは2回複製されます。私は1日中デバッグを試みましたが、成功することはできませんでした。私を助けてください! 私はメッセージを保存するために共有の環境設定を使用しています。そして、私はApiとそのトピックに基づいて送信しています。Android Firebaseプッシュ通知ダブル値

以下

私MyFirebaseMessagingServiceクラスの私のonMessageReceived()メソッドのコード

@Override 
public void onMessageReceived(RemoteMessage remoteMessage) { 
    Log.d(TAG, "From: " + remoteMessage.getFrom()); 

    if (remoteMessage.getData().size() > 0) { 
     Log.d(TAG, "Message data payload: " + remoteMessage.getData()); 
    } 

    String message = remoteMessage.getData().get("message"); 

    SharedPreferences sp = getSharedPreferences("mypreference", Context.MODE_PRIVATE); 
    String prev = sp.getString("msg", "-"); 
    String newp; 
    if(prev != "-"){ 
     newp = prev+","+messageBody; 
    }else{ 
     newp = messageBody; 
    } 

    Log.d("prev123",prev); 

    SharedPreferences.Editor e = sp.edit(); 
    e.putString("msg",newp); 
    Log.d("afterstore", newp); 
    e.commit(); 
    e.apply(); 
} 

と私はメッセージを表示していますクラスがある:メッセージが受信されると、ログイン

@Override 
public void onResume() { 
super.onResume(); 
String msg = sp.getString("msg", null); 
Log.d("message", msg); 
String[] pqrs = msg.split(","); 

Log.d("Array msg",pqrs); 

ArrayAdapter<String> adp = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,android.R.id.text1,pqrs); 
listView.setAdapter(adp); 

それはしかし示し同じメッセージの数分の1秒後にログに追加されます。どのように知りません。助けてください。

+0

ちょっと考えて、onResume()を取得して、そのonCreate()を実行して何が起こるかを確認しないでください。 –

+0

firebaseについての他のクラスを投稿してください –

+0

こんにちは@ msh.nayanそれでも問題は持続します – Aashish

答えて

0

正確に複製されているものは得られません。あなたが保存したデータは、それを二度保存する理由かもしれません。

e.commit(); 
e.apply() 

ただ1つを使用してください。非同期または同期とは異なり、同じ操作を実行します。

幸運

エムレ

+0

貴重な回答のために@Emreありがとうございました。私はe.commit()を削除しようとしましたが、助けにはなりませんでした。 – Aashish

+0

したがって、onMessageReceivedは2回呼び出されましたか? –

+0

一度だけ呼び出されます。私は問題は、私は共有の設定でそれを格納しているとき、それは2回格納されていると思います – Aashish

0

あなたのアプリケーションの明確なデータがラインをコミット削除した後でしたか?修正後の古い重複データでテストするかもしれませんか?

また、他のクラスの呼び出しの意図がある場合は、削除しようとしてください。私が知っているように、それはfirebaseの基本クラスによって自動的に呼び出されます。

+0

ええ、私はアプリのデータを削除しました – Aashish

関連する問題