我试图通过FCM服务发送推送通知。 在我的MainActivity中,我编写了这段代码:
Enter your name : abc
Enter marks of 1 subject : 98
Enter marks of 2 subject : 15
Enter marks of 3 subject : 45
Enter marks of 4 subject : 2
Enter marks of 5 subject : 2
Enter choice y for repeat : y
Enter your name : xyz
Enter marks of 1 subject : 55
Enter marks of 2 subject : 59
Enter marks of 3 subject : 68
Enter marks of 4 subject : 47
Enter marks of 5 subject : 59
Enter choice y for repeat :
{'abc': [98, 15, 45, 2, 2], 'xyz': [55, 59, 68, 47, 59]}
为了订阅用户主题。
从后端我通过以下链接拨打FCM服务:https://fcm.googleapis.com/fcm/send
我传递了这个JSON:
mRegistrationBroadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// checking for type intent filter
if (intent.getAction().equals(Config.REGISTRATION_COMPLETE)) {
// gcm successfully registered
// now subscribe to `global` topic to receive app wide notifications
FirebaseMessaging.getInstance().subscribeToTopic(Config.TOPIC_GLOBAL);
displayFirebaseRegId();
} else if (intent.getAction().equals(Config.PUSH_NOTIFICATION)) {
// new push notification is received
String message = intent.getStringExtra("message");
Toast.makeText(getApplicationContext(), "Push notification: " + message, Toast.LENGTH_LONG).show();
}
}
};
我收到了这个回复:
{
"to":"/topics/global",
"data":{
"title":"test",
"is_background":false,
"message":"testmessage",
"image":"",
"payload":{
"team":"Test",
"score":"5.6"
},
"timestamp":"2017-05-23 11:55:35"
}
}
但我的设备没有显示任何通知,如果我使用Firebase控制台和#34;用户细分"或者"单个设备" 。同样在Firebase控制台中也不起作用" topic"方式。
提前感谢您的回复。
答案 0 :(得分:0)
有两种类型的FCM消息。
在客户端,通知消息由FCM处理并自动显示在通知窗口中。如果您使用数据消息,您的应用程序需要处理收到的消息并创建通知。
您问题中的样本有效负载是数据消息,因此它不会显示在通知中(我假设您没有进行任何处理)。通过FCM控制台发送的通知始终是通知消息,因此会自动显示这些消息。
有关详细信息,请参阅this FCM page。