android 如果应用程序已关闭,则未收到Firebase Push命令

oxcyiej7  于 11个月前  发布在  Android
关注(0)|答案(6)|浏览(135)

我正在测试Firebase推送通知,从Firebase编写器面板发送通知,我注意到如果我从应用程序信息面板关闭应用程序进程,发送的推送通知不会到达设备。即使我再次启动应用程序,通知也会丢失,并且永远不会收到。
我也试过这个:
关闭应用程序进程->关闭设备->打开设备电源->发送通知......而通知没有收到!
似乎Firebase只能在设备启动应用程序而不是100%关闭时才能收到通知,我的意思是,只需使用后退键关闭它,但不会杀死应用程序进程。
这怎么可能呢?即使应用程序关闭,Firebase也应该收到通知。
我正在使用Android 8.0的Nexus 5X进行测试,我使用的是最新版本的Firebase推送服务。

jbose2ul

jbose2ul1#

很抱歉迟到了,但希望这有助于下一个用户,将有这个问题,因为没有答案选择为“解决方案”。

当服务设置正确,这将工作,即使应用程序关闭。这是因为,Firebase消息通过Google Play服务旅行,所以关闭您的应用程序与服务没有关系。

起初,通知从未出现。通过在设备设置中搜索,我看到我的应用程序的节能系统处于活动状态(关闭时从堆栈中删除),因此通知被发送,但我的应用程序无法获取并显示这些。
禁用该选项后,我测试了很多次,我发现有时通知会在应用程序完全关闭时延迟2-3分钟。有时它会触及5分钟。你需要耐心等待,它会来的!
相反,当应用程序被打开或关闭只是通过后退按钮,通知来在几秒钟内.

bfrts1fy

bfrts1fy2#

在AndroidManifest.xml文件中,从消息服务中删除android:exported=false
说明:当您的应用程序被完全杀死或从回栈中删除时。操作系统尝试重新启动消息传递服务,但如果您的清单文件中有android:exported=false,则操作系统将无法重新启动该服务,因为此类服务只能由同一应用程序重新启动。
参考:https://developer.android.com/guide/topics/manifest/service-element#exported

xytpbqjk

xytpbqjk3#

似乎只有当设备启动应用程序而不是100%关闭时,Firebase才能收到通知,我的意思是,只使用后退键关闭它,但不会杀死应用程序进程。
不,FCM会发送到具有Google Play服务和目标应用程序的所有设备。这就是为什么它被称为推送推送。
您的应用程序在运行时也会收到通知,以处理需要覆盖的通知

onMessageRecieved(RemoteMessage mes);

字符串
应用程序无法收到通知的原因可能有很多。其中一些可能是:

  • 清单中不包括的消息传递服务
  • 播放服务未正确配置。或不在手机中。
  • 有时延迟很高(很少)。我注意到它有时需要大约2-3分钟后创作。
  • SHA1指纹未在控制台中注册和/或更新的google-services.json未出现在源中。
  • 重新启动并重新安装应用程序。以便可以进行令牌再生。

请点击此链接开始使用消息传递。
https://firebase.google.com/docs/cloud-messaging/android/client

lc8prwob

lc8prwob4#

你有没有在Java代码中添加firebase服务?这里是链接:firebase/quickstart-android
你必须在java文件夹中添加这3个java文件,并在AndroidManifest.xml中添加这些服务名称

btqmn9zl

btqmn9zl5#

如果你是从你的firebase控制台发送它,它会发送一个通知消息,所以如果你的应用程序被关闭,你将不会得到那些,你需要发送消息,有数据的有效载荷,控制台不这样做.
https://firebase.google.com/docs/cloud-messaging/concept-options#notifications_and_data_messages

jhdbpxl9

jhdbpxl96#

从Firebase文档中截取此屏幕截图,似乎FCM

无法实现

相关问题