我收到来自Firebase的通知,但我创建的课程无法正常工作(不参与操作)。似乎它们默认显示。
public class MyFirebaseMessagingService extends FirebaseMessagingService {
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
String title = remoteMessage.getNotification().getTitle();
String message = remoteMessage.getNotification().getBody();
String click_action = remoteMessage.getNotification().getClickAction();
Intent intent = new Intent(click_action);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_ONE_SHOT);
NotificationCompat.Builder notifiBuilder = new NotificationCompat.Builder(this)
.setContentTitle(title)
.setContentText(message)
.setAutoCancel(true)
.setContentIntent(pendingIntent);
NotificationManager notificationManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(0, notifiBuilder.build());
}
}
答案 0 :(得分:1)
有两种类型的FCM消息:通知和数据。它们在接收设备中的处理方式不同。如果要发送没有数据字段的通知消息,则通知由客户端SDK生成,并且不会调用onMessageReceived()
。这是explained in more detail in the documentation:
通知消息:FCM代表客户端应用自动向最终用户设备显示消息。通知消息 有一组预定义的用户可见键和一个可选数据 自定义键值对的有效负载。
数据消息:客户端应用负责处理数据消息。数据消息只有自定义键值对。