TL; DR:Firebase云消息仅在Android 9+设备上不显示“ heads-up”通知中的应用程序图标。https://developer.android.com/guide/topics/ui/notifiers/notifications#Heads-up
更长的版本:
[当我直接从Firebase或任何Rest Client向https://fcm.googleapis.com/fcm/send端点发送云消息时,一切看起来都很好,该消息在屏幕上显示标题,说明和图标,设备发出声音,然后消失在屏幕上一会儿,但停留在通知栏和通知抽屉中。
在将邮件传递到运行Android 10或9(但不是全部)的设备上之前,一切正常。通知栏和通知抽屉可以正常工作,并且消息本身看起来与旧版Android完全相同。但请注意,我的应用程序图标未选中。到现在为止,我还没有将任何带有有效负载的“图标”发送到Firebase,但是即使我使用图标的URL设置了“ icon”属性,它仍然不会出现在标题上。我在“ image”属性中放置了相同的URL,然后该图像出现在抬头中,但我认为不是该属性应用于在通知中显示应用程序图标。
有人注意到相同的问题吗?我尝试查看Google Android文档-但看起来好像已经过时,并且以Android 8结尾。我尝试了Firebase文档,但是它说“ icon”属性是可选的(这就是为什么我没有附加它的原因)。
我已经在以下位置测试了通知:
有效载荷只是:
{
"to": "(...)",
"notification": {
"title": "Push from RestClient",
"body": "Notification body"
},
"data": {}
}
我建议您使用实时数据库进行文件传输等。Cloud Message通常用于仅推送和发送通知。我说最好在Firebase中使用Onesignal之类的通知推送服务。它非常易于使用,而且性能更高]