FCM消息可以从控制台并使用api推送
从控制台(https://console.firebase.google.com)
使用api(https://fcm.googleapis.com/fcm/send)
在这两种情况下,当应用程序位于前景中时,都会在扩展FirebaseMessagingService的服务中收到消息,在onMessageReceived中,我们可以按捆绑包中的自定义参数过滤请求,但是当应用程序位于 background < / strong>,然后从控制台发送消息,不调用接收者,并且以某种方式添加了推送消息。
可以处理此请求吗?
答案 0 :(得分:0)
当应用程序处于后台并且您想通过控制台触发通知时,通知将进入通知托盘,而不是进入服务。
这将在准则中提及。
https://firebase.google.com/docs/cloud-messaging/android/receive
因此,如果您仍要处理通知,则必须为其设置适当的有效负载。这样,只要用户单击通知,它就会做出相应的反应。
要禁用通知,请尝试以下操作
FirebaseInstanceId.getInstance().deleteInstanceId();
答案 1 :(得分:0)
Firebase Cloud Messaging支持两个types of messages:
通知消息,有时被称为“显示消息”。 [当应用程序不活动时],这些将由FCM SDK自动处理。
数据消息,由客户端应用处理。
Firebase控制台始终发送通知消息,这些消息由系统处理(当应用程序不活动时)。在这种情况下,无法拦截这些消息。
如果您希望始终在应用程序代码中接收到该消息,则应使用一条只能通过API发送的数据消息。
答案 2 :(得分:-1)
是的,当应用程序处于前台/后台时,可以处理消息。在这两种情况下,都可以通过实现onMessageReceived
来处理它。唯一的区别是,您必须在您的JSON消息中放入data
。 Here,您可以找到更多。
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
Map<String, String> data = remoteMessage.getData();
String myKey = data.get("myKey");
}