我正在使用Firebase云消息传递。我有几个问题,我无法从文档中理解:
包含通知和数据有效负载的消息,包括背景和 前景。在这种情况下,通知将传递给 设备的系统托盘,数据有效负载在附加功能中提供 您的启动器活动的意图。
如果用户没有点按通知怎么办?数据有效负载是否丢失?有没有办法检索它?
非常感谢
答案 0 :(得分:1)
如果应用程序已关闭(不在后台),则会在收到通知时调用onMessageReceived方法,并且您可以使用remoteMessage.getData().get("key_for_parameter");
检索数据有效内容,其中key_for_parameter是您在其中发送的参数的名称通知。即使应用程序已关闭,也会调用此方法。但是,请注意只有在通知中省略“通知”参数时才会调用“onMessageReceived”(查看this post)
因此,一旦你在onMessageReceived中有了params,你就可以寻找一种策略来在你的应用程序中使用它们,比如存储在数据库中,如果用户没有点击通知,你就不会丢失数据。
答案 1 :(得分:0)
如果您的应用在后台运行,Firebase将不会触发onMessageReceived()。为什么.....?我不知道。在这种情况下,我认为实施FirebaseMessagingService没有任何意义。
根据文档,如果您要处理背景信息到达,您必须发送' click_action'与您的消息。但是,如果您仅通过Firebase API从Firebase控制台发送消息,则无法进行此操作。这意味着你必须建立自己的"控制台"为了使营销人员能够使用它。所以,这使得Firebase控制台也毫无用处!
这个新工具背后有很好的,有希望的想法,但执行得很糟糕。
我想我们将不得不等待新版本和改进/修复