我已从 GCM 升级到 FCM ,现在我正在测试升级用户的经验
我有以下步骤
问题是我在设备的通知区域中看到了收到的消息,但没有调用代码CloudMessagingListenerService extends FirebaseMessagingService
我在CloudMessagingListenerService#onMessageReceived
我进入应用信息并选择强制停止并重新打开应用后,我在CloudMessagingListenerService#onMessageReceived
内的代码被正确调用。
任何想法是什么原因造成的,以及可以采取什么措施来避免强行杀死(我的用户不会自愿这样做)
在两种情况下,应用都在后台
更新:
问题是从 Firebase控制台接收消息。
我在CloudMessagingListenerService#onCreate
和CloudMessagingListenerService#onDestroy
中添加了日志,我发现它们之间的时间差为100毫秒-而CloudMessagingListenerService#onMessageReceived
却没有被调用,因此看起来{ 1}}决定处理通知,但不处理数据部分
关于从服务器发送的消息:
这是我从服务器发送的json-数据部分正确传播到了我的代码,但是当我检查FirebaseMessagingService
的内容时,通知被忽略了,我得到 null < / p>
remoteMessage.getNotification()
答案 0 :(得分:0)
Firebase控制台通过notification
键发送消息,这意味着仅当应用程序在前台/打开状态下运行时,消息才传递给onMessageReceived()
。如果应用程序在后台运行,则通知将直接显示在通知抽屉中。
要在扩展onMessageReceived()
的类的FirebaseMessagingService
中接收有效载荷,请确保将通知内容通过您的请求的data
键传递给FCM服务器。这样一来,无论应用程序位于前景/背景中,都将确保有效载荷传递到onMessageReceived()
。