仅当应用打开时,才会处理来自 Firebase 数据的 Android 推送通知,并且如果应用处于后台或未运行,Firebase 会在推送时从通知标记中发出包含标题和正文的通知。当应用程序处于后台或未运行时,如何处理数据标签。我尝试过以下代码:
public static String TAG = MyFirebaseMessagingService.class.getSimpleName();
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
Log.e(TAG,"Test_Data:"+remoteMessage.getData().toString());
}
但它仅在应用程序打开时才起作用,并且我无法仅处理基本上由 Firebase 本身处理的通知标记的数据!
最佳答案
要以相同的方式处理前台、后台和终止状态的数据,您必须发送数据消息而不是通知消息。数据消息始终在 onMessageReceived()
中接收。您可以通过在 json 中仅包含数据标记来实现此目的。
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"data":{
"Nick" : "Mario",
"body" : "great match!",
"Room" : "PortugalVSDenmark"
}
}
}
如果您在此 json 中包含通知对象,则它会被视为通知消息,并且仅在点击时才会传递数据部分
关于java - Android 推送通知 Firebase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48419128/