如何在Android上用自己的Firebase通知替换通知?

时间:2018-08-23 06:24:24

标签: java android firebase push-notification android-broadcastreceiver

我的Android应用程序收到Firebase通知。而且我需要本地化此通知,具体取决于客户端而非服务器端的应用程序语言。

如果应用程序处于前台,我将使用<input type="text" value="{{user.name}}" readonly> // In this case you can get post values <input type="text" value="{{user.name}}" disabled> // In this case you can not get post values 中的onMessageReceived()并推送我自己的本地化通知。但是,如果应用程序在后台FirebaseMessagingService中不会被调用。

在这种情况下,我使用自己的扩展为onMessageReceived()的类。 BroadcastReceiver方法捕获通知,我将其本地化并推送。一切顺利,但最后我得到了2个推送通知:我自己的本地化版本和Firebase。

我如何摆脱此Firebase通知,而只获得我自己的通知?

onReceive(Context context, Intent intent)

1 个答案:

答案 0 :(得分:0)

您应该真正使用来自服务器的数据通知。普通消息通知无法实现您想要的这种行为。在此处查看文档:{​​{3}}

因此您从服务器到Firebase的请求应如下所示:

{
  "message":{
    "token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
    "data":{
      "Nick" : "Mario",
      "body" : "great match!",
      "Room" : "PortugalVSDenmark"
    }
  }
}

代替:

{
  "message":{
    "token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
    "notification":{
      "title":"Portugal vs. Denmark",
      "body":"great match!"
    }
  }
}