我在我的应用程序中使用FCM
发送通知,所有功能都很好,但当我的应用处于后台时,通知由android系统通知托盘处理
我想处理我自己的通知我正在发送这个有效载荷来发送通知
$fields = array(
'notification' => $notification,
'to' => '/topics/updates'
);
当我的应用程序处于forground
时,它将调用我的onMessageReceived
,但当我的程序处于后台时,它不会调用我的onMessageReceived
,请求由系统本身处理
当我的应用程序处于background
时,我想呼叫我的onMessageReceived
我也尝试删除notification key
,只发送像这个一样的data key
$fields = array(
'data' => $notification,
'to' => '/topics/updates'
);
但是当我从上面的字段发送请求时,onMessageReceived
在forground and background
中的两个条件下都没有被调用
我在我的xiaomi redmi note 4 (oreo)
、redmi 4x(android 10)
和android emulator(marshmello)
中尝试这个
我遵循这个ans来解决我的问题,但不为我工作如何在Firebase 后台处理应用程序通知
我的FCM版本是17.3.4
我的安卓工作室版本是3.5.3
如果没有接收到数据消息,则负载可能是错误的。下面是我的有效负载示例(.js,但结构应该基本相同(:
const payload = {
data: {
title: finalTitle,
body: message,
icon: icon
},
topic: channel
};
admin.messaging().send(payload)
.then((response) => {
return
})
很抱歉发布这个愚蠢的问题,当我们只发布数据密钥而不是通知密钥时,FCM在后台工作
我的错误是,我用这个包装了我的通知生成器
if (remoteMessage.getNotification() != null) {
// other code
}