Firebase Pull通知

时间:2016-08-17 08:39:59

标签: android ios firebase-cloud-messaging

我正在使用Firebase云消息传递。我有几个问题,我无法从文档中理解:

  1. Android:让我们假设该应用已关闭(未落地:已关闭)。如果我发送带有数据有效负载的通知,则此数据有效负载将通过Intent Extra
  2. 传递给活动
      

    包含通知和数据有效负载的消息,包括背景和   前景。在这种情况下,通知将传递给   设备的系统托盘,数据有效负载在附加功能中提供   您的启动器活动的意图。

    如果用户没有点按通知怎么办?数据有效负载是否丢失?有没有办法检索它?

    1. 式IO /机器人。让我们假设用户禁用了通知,我向客户发送了一个通知:有没有办法在应用程序启动时检索(拉)通知?
    2. 非常感谢

2 个答案:

答案 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控制台也毫无用处!

这个新工具背后有很好的,有希望的想法,但执行得很糟糕。

我想我们将不得不等待新版本和改进/修复