如果应用已关闭,则不会收到Firebase推送通知

时间:2017-12-18 12:48:34

标签: android firebase push-notification firebase-notifications

我正在测试Firebase推送通知,从Firebase编辑器面板发送通知,我注意到如果我从“应用信息”面板关闭应用进程,则发送的推送通知无法到达设备。即使我再次启动应用程序,通知也会丢失,并且永远不会收到。

我也试过这个:

  

关闭应用程序流程 - >关闭设备 - >设备上电 - >发送通知......并且没有收到通知!

似乎firebase只能在设备启动应用程序时才会收到通知,而不是100%关闭,我的意思是,只需使用后退键关闭它,但不会终止应用程序进程。

这怎么可能?即使应用程序关闭,firebase也会收到通知。

我正在使用Android 8.0在 Nexus 5X 上进行测试,而我正在使用FAILED TEST SUMMARY --------------------------------------------------------------------- Test adding / removing items [tests/007-addremovepoll.phpt] Test callback edge-cases [tests/019-callbackinvalidsignature.phpt] 的最新版本。

5 个答案:

答案 0 :(得分:1)

对不起,很抱歉,希望此功能能对下一个有此问题的用户有所帮助,因为没有答案被选择为“解决方案”。

正确设置服务,即使关闭应用程序也可以使用。那是因为,Firebase Messages由Google Play服务提供,因此关闭您的应用程序与该服务没有关系。

起初,通知从未到来。通过搜索设备设置,我发现我的应用程序的节能系统处于活动状态(关闭时已从堆栈中删除),因此发送了通知,但我的应用程序无法拿走并显示这些内容。

禁用该选项后,我进行了很多次测试,发现有时当应用程序完全关闭时,通知会在2-3分钟后出现。有时会碰到5分钟。您需要耐心等待,它将来!

相反,仅通过后退按钮打开或关闭应用时,通知会在几秒钟内出现。

答案 1 :(得分:0)

您是否在Java代码上添加了firebase服务? 这是链接:firebase/quickstart-android

您必须在java文件夹中添加这3个java文件,并在 AndroidManifest.xml

中添加这些服务名称

答案 2 :(得分:0)

  

似乎firebase只能在设备上收到通知   有应用程序启动,而不是100%关闭,我的意思是,关闭它只是   返回密钥但不杀死应用程序进程。

不,FCM会发送到所有拥有Google Play服务和目标应用程序的设备。这就是为什么它被称为推送通知。

您的应用程序在运行时也会收到通知,以处理您需要覆盖的内容

onMessageRecieved(RemoteMessage mes);

应用无法收到通知可能有很多原因。其中一些可能是:

  • 消息传递服务未包含在清单中

  • 未正确配置播放服务。或者不在电话中。

  • 有时延迟很高(很少)。我注意到它有时需要大约2-3分钟 作曲后。

  • SHA1指纹未在控制台中注册和/或更新后的google-services.json不在源中。

  • 卸载并重新安装该应用。因此可能会发生令牌再生。

请点按此链接开始发送消息。

https://firebase.google.com/docs/cloud-messaging/android/client

答案 3 :(得分:0)

如果您从firebase控制台发送它,它会发送一条通知消息,以便在您的应用程序关闭时无法获得通知消息,您需要发送具有控制台不执行的数据有效负载的消息。

https://firebase.google.com/docs/cloud-messaging/concept-options#notifications_and_data_messages

答案 4 :(得分:0)

在您的AndroidManifest.xml文件中,从消息服务中删除android:exported=false

说明:当您的应用程序被完全杀死或从后堆栈中删除时。操作系统尝试重新启动消息传递服务,但是如果清单文件中包含android:exported=false,则操作系统将无法重新启动该服务,因为该服务只能由同一应用程序重新启动。

参考:https://developer.android.com/guide/topics/manifest/service-element#exported