【问题标题】:Android Firebase Push Notification Double valuesAndroid Firebase 推送通知 Double 值
【发布时间】:2017-05-28 08:30:40
【问题描述】:

大家好,我正在 Android 中实现 Firebase 推送通知。一切正常,除了当我检索消息时,它们被复制了两次。我尝试调试一整天,但无法成功。请帮帮我! 我正在使用共享首选项来存储消息。我正在通过 Api 及其主题发送。

下面是我的 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);

在日志中,一旦收到消息,它就会显示,但在第二条相同消息的一小部分被附加到日志之后。不知道怎么样。请帮忙。

【问题讨论】:

  • 只是一个想法,不要在 onResume() 上进行检索,在 onCreate() 上进行,看看会发生什么。
  • 请发布您关于 firebase 的其他课程
  • 嗨@msh.nayan 我也试过了,问题仍然存在
  • @EmreAkturk 我不认为其他类是相关的。
  • 在 onMessageReceived() 上接收数据并在 Shared Preference 上存储这些数据后并提交它;您可以立即检索数据以验证何时存储双数据

标签: android firebase push-notification firebase-cloud-messaging


【解决方案1】:

我不明白完全重复的内容。如果是您保存的数据,可能是您保存两次的原因。

e.commit(); 
e.apply()

只需使用其中之一。它们执行与异步或同步不同的相同操作。

祝你好运

埃姆雷

【讨论】:

  • 感谢@Emre 的宝贵回答。我尝试删除 e.commit() 但没有帮助。
  • 所以 onMessageReceived 调用了两次?
  • 只调用一次。我想问题是当我将它存储在共享首选项中时,它被存储了两次
【解决方案2】:

您在删除提交行后是否清除了应用程序的数据?您可能会在修复后使用旧的重复数据进行测试?

此外,如果您在其他类中调用意图,请尝试将其删除。据我所知,它是由 firebase 的基类自动调用的。

【讨论】:

  • 是的,我删除了应用数据
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-05
相关资源
最近更新 更多