我正在处理Firebase消息传递。我有几个问题,我无法从文件中理解:
具有通知和数据有效负载的消息,包括后台和前台。在本例中,通知被传递到设备的系统托盘,数据有效负载在启动程序活动的目的之外传递。
如果用户不点击通知怎么办?数据有效载荷丢失了吗?有办法找回它吗?
非常感谢
发布于 2016-08-17 13:39:32
如果应用程序被关闭(而不是在后台),则在收到通知时调用onMessageReceived方法,在那里您可以使用remoteMessage.getData().get("key_for_parameter");检索数据有效负载,其中key_for_parameter是在通知中发送的参数的名称。即使应用程序已关闭,也会调用此方法。但是,要考虑到只有在通知中省略“通知”参数时才调用"onMessageReceived“(请参阅this post)。
因此,一旦在onMessageReceived中有了params,就可以在应用程序中寻找使用它们的策略,就像存储在DB中一样,如果用户不单击通知,就不会丢失数据。
发布于 2016-08-17 08:43:34
如果您的应用程序在后台,Firebase将不会触发onMessageReceived()。为什么.?我没有头绪。在这种情况下,我认为实现FirebaseMessagingService没有任何意义。
根据docs,如果您想处理背景消息到达,您必须发送'click_action‘与您的消息。但是,如果您只通过Firebase API从Firebase控制台发送消息,则不可能。这意味着你必须建立自己的“控制台”,以使营销人员使用它。因此,这使得Firebase控制台也相当无用!
这个新工具背后确实有好的、有希望的想法,但是执行得很糟糕。
我想我们将不得不等待新版本和改进/修复。
https://stackoverflow.com/questions/38991859
复制相似问题