我使用我的应用程序设置了 Firebase 消息,但不幸的是,通知没有出现。
我正确地设置了Firebase,它连接到我的应用程序,我也发送了一些测试消息,在Firebase中它说已完成,但是我没有在我的手机上收到它们。
我的应用程序还没有上市,我正在通过Android Studio开发和测试它。
这是我的MyFirebaseInstanceIDService类
public class MyFirebaseInstanceIDService extends FirebaseInstanceIdService {
private static final String TAG = "MyFirebaseIIDService";
/**
* Called if InstanceID token is updated. This may occur if the security of
* the previous token had been compromised. Note that this is called when the InstanceID token
* is initially generated so this is where you would retrieve the token.
*/
// [START refresh_token]
@Override
public void onTokenRefresh() {
// Get updated InstanceID token.
String refreshedToken = FirebaseInstanceId.getInstance().getToken();
Log.d(TAG, "Refreshed token: " + refreshedToken);
// TODO: Implement this method to send any registration to your app's servers.
sendRegistrationToServer(refreshedToken);
}
// [END refresh_token]
/**
* Persist token to third-party servers.
*
* Modify this method to associate the user's FCM InstanceID token with any server-side account
* maintained by your application.
*
* @param token The new token.
*/
private void sendRegistrationToServer(String token) {
// Add custom implementation, as needed.
}
}
这里来了我的火库消息服务类:
公共类MyFirebaseMessagingService扩展了FirebaseMessagingService{私有静态最终字符串TAG="MyFirebaseMsgService";
/**
* Called when message is received.
*
* @param remoteMessage Object representing the message received from Firebase Cloud Messaging.
*/
// [START receive_message]
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
// [START_EXCLUDE]
// There are two types of messages data messages and notification messages. Data messages are handled
// here in onMessageReceived whether the app is in the foreground or background. Data messages are the type
// traditionally used with GCM. Notification messages are only received here in onMessageReceived when the app
// is in the foreground. When the app is in the background an automatically generated notification is displayed.
// When the user taps on the notification they are returned to the app. Messages containing both notification
// and data payloads are treated as notification messages. The Firebase console always sends notification
// messages. For more see: https://firebase.google.com/docs/cloud-messaging/concept-options
// [END_EXCLUDE]
//"Title","Message","NotyType", "hotelStatus"
String title = "";
if (remoteMessage.getNotification().getTitle() != null){
title = remoteMessage.getNotification().getTitle();
}
String message = "";
if (remoteMessage.getNotification().getBody() != null){
message = remoteMessage.getNotification().getBody();
}
Log.e("notification","recieved");
sendNotification(title, message);
// Also if you intend on generating your own notifications as a result of a received FCM
// message, here is where that should be initiated. See sendNotification method below.
}
// [END receive_message]
private void sendNotification(String title, String body) {
Intent i = new Intent(this, MainActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pi = PendingIntent.getActivity(this,
0 /* Request code */,
i,
PendingIntent.FLAG_ONE_SHOT);
Uri sound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder builder = new NotificationCompat.Builder(this,
getString(R.string.default_notification_channel_id))
.setSmallIcon(R.mipmap.ic_launcher)
.setContentTitle(title)
.setContentText(body)
.setAutoCancel(true)
.setSound(sound)
.setContentIntent(pi);
NotificationManager manager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
assert manager != null;
manager.notify(0, builder.build());
} }
调试时没有看到任何html" target="_blank">日志,手机上也没有收到任何通知。
我在这里做错了什么吗?你能给点建议吗?谢谢。
哦,现在我尝试了一些东西!我更新了我的MyFirebaseMessagingService类,正如你现在在我的问题中看到的,现在它工作了!从Firebase控制台,我只发送消息,没有数据,所有的通知,我收到了我的设备!即使我的应用程序正在运行,即使我关闭了它!我收到的每一份通知。当应用程序运行时,通知有我的自定义图标,当应用程序关闭时,默认的“铃”图标在那里,但在这两种情况下,我收到了通知!不知道怎么可能,但确实有效。
onMessageReceived不会使用仅带有通知标记的推送发送来调用,并且您的应用程序不在前台。如果它确实在前台,将调用您的onMessageReceived。
如果您想触发onMessageReceived,则需要发送带有附加数据标记或仅带有数据标记的推送。
但是请注意,如果您同时发送通知和数据标记,则只有当应用程序位于前台时,才会触发onMessageReceived。如果应用程序位于后台,则数据标记内的所有内容都将作为附加内容在点击意图内传递
无论应用程序是否在前台,只有Data标记总是调用onMessageReceived。
例如:仅针对数据标记:)
https://fcm.googleapis.com/fcm/send
Content-Type:application/json
Authorization:key=AIzaSyZ-1u...0GBYzPu7Udno5aA
{ "data": {
"score": "5x1",
"time": "15:10"
},
"to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..."
}
我正在尝试让Spring WebSocket(Spring 4)在我一直在做的项目中工作。到目前为止,我已经打开了WebSocket,添加了订阅者并发送了消息。 从昨天开始,我一直在试图弄清楚为什么我的endpoint不处理HTML中包含的stomp客户端发送的消息。控制台中实际上也没有错误(好吧,我不完全确定这里的“连接到服务器未定义”是什么意思)。 以下是Chrome控制台的输出: 这是我的代
此代码未生成推送。 //自定义通知视图RemoteViews contentView=新建RemoteViews(getPackageName(),r.layout.custom_push);ContentView.SetImageViewResource(r.id.image,r.mipmap.ic_launcher);contentview.settextviewtext(r.id.title
问题内容: 我在iOS上的FCM通知有问题。 我收到成功通知时,我的应用程序是在前台(回调中被激发),但是当应用程序在后台(我看不出在iOS中的通知栏的任何东西)我没有收到通知。 因此,我认为问题在于FCM发送的消息格式。我的服务器发送到FCM的json格式如下: 如您所见,我的json中有两个块:一个通知块(用于在后台接收通知)和一个数据块(用于在前台接收通知)。 我不明白为什么没有收到后台通知
我无法在iOS设备上进行测试
问题内容: 我需要处理推送通知,这是通过较低版本的ios完成的,但是在ios 11中,从未收到任何推送通知。我使用Firebase Cloud Messaging。请任何人有解决方案,然后请分享。 问题答案: func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UI
我们一直在通过Amazon SNS和Google Cloud Messaging(GCM)向Android设备发送消息。这是我们正在输入SNS发送消息功能的原始SNS json消息: 由于某种原因,带有和的“通知”部分似乎被忽略了。设备上未显示任何通知。 任何人都可以确认通知可以通过SNS发送,或者(正如我们所怀疑的那样)是否存在一些限制,其中只能理解json的数据部分?