【发布时间】:2017-07-21 11:47:58
【问题描述】:
我正在尝试使用 FCM 发送上游消息,如下面的code-1 所示。当我从FCM 向App 发送消息时,它到达App 时伴随并延迟了上游消息,是什么
我的意思是延迟上游消息,当应用程序已经发送上游消息但应用程序用户从未收到有关其状态的通知时,例如 onMessageSent"
我想要实现的是,在我发送上游消息时立即通过“FirebaseMessagingService”获得通知。为了解决这个问题,我使用了小值的setTtl
并且值在 1 到 100000 之间但没有任何变化,我仍然会在有来自 FCM 的下游消息到应用程序时收到有关上游消息的通知
请告诉我为什么“FirebaseMessagingService”中的回调没有立即将应用程序发送消息的状态报告给服务器
code-1:发送上游消息:
mBtnSendUpstreamMsg = (Button) findViewById(R.id.btn_send_upstream_message);
mBtnSendUpstreamMsg.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FirebaseMessaging fm = FirebaseMessaging.getInstance();
fm.send(new RemoteMessage.Builder("13xxxxx" + "@gcm.googleapis.com")
.setMessageId("2")
.addData("my_message", "Hello World")
.addData("my_action","SAY_HELLO").setTtl(1000000)
.build());
}
});
MyAndroidFirebaseMsgService.java
public class MyAndroidFirebaseMsgService extends FirebaseMessagingService {
private final static String TAG = MyAndroidFirebaseMsgService.class.getSimpleName();
@Override
public void onMessageSent(String s) {
super.onMessageSent(s);
Log.d(TAG, "onMessageSent: upstream message");
}
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
Log.d(TAG, "onMessageReceived: downstream message");
//Log data to Log Cat
Log.d(TAG, "onMessageReceived->From: " + remoteMessage.getFrom() +" | "+ remoteMessage.getTo());
Log.d(TAG, "onMessageReceived->Notification Message Body: " + remoteMessage.getNotification().getBody());
//create notification
createNotification(remoteMessage.getNotification().getBody());
/*
FirebaseMessaging fm = FirebaseMessaging.getInstance();
fm.send(new RemoteMessage.Builder("135855xx" + "@gcm.googleapis.com")
.setMessageId("2")
.addData("my_message", "Hello World")
.addData("my_action","SAY_HELLO").setTtl(1000000)
.build());
*/
}
【问题讨论】:
-
检查FCM Token是否生成? @user2121
-
@ChiragTalsaniya 请告诉我生成的 FCM 令牌和延迟的上游消息之间的关系是什么?无论如何,FCM 令牌是生成的,如问题中所述,我收到的下游消息为因为它们被发送,但上游消息传递总是有延迟
-
糟糕..误解了。让我们检查相同的@user2121
-
我观察到同样的情况,即使 ttl 为 0
标签: android firebase google-cloud-platform firebase-cloud-messaging gcmlistenerservice