【问题标题】:Set preference when firebase notification has come在 Firebase 通知到来时设置首选项
【发布时间】:2016-08-13 17:30:17
【问题描述】:

我在我的应用中使用 Firebase 通知服务。但我面临一些挑战。当 Firebase 通知到来时,我需要执行我的代码并设置首选项。是否有任何方法或回调来获得 Firebase 通知。我没有使用 FCM 的数据消息,因为我没有任何服务器。因此,问题是从 firebase 的默认通知管理器获得通知。提前致谢。

【问题讨论】:

  • 你能在 onMessageReceived() 方法里面试试吗?
  • 是的,我试过了,但是当应用程序在后台时,它就不起作用了
  • 更正应用在后台时不调用onMessageReceived。为此,您需要数据消息。

标签: android firebase firebase-cloud-messaging firebase-notifications


【解决方案1】:

不,当您收到通知消息时,无法保证回调。如果应用在前台,会触发 onMessageReceived 回调,但当应用在后台时,会显示自动生成的通知,不会触发回调。

很遗憾,此时 Firebase 控制台不允许数据消息。因此,如果不使用某种服务器,就无法完成您的要求。

【讨论】:

    【解决方案2】:

    检查此链接firebase notification receive onMessageReceived(RemoteMessage remoteMessage) 方法中执行您的代码。

    【讨论】:

    • 是的,但它仅适用于应用程序作为通知消息的后台并且它将执行需要服务器 api 的数据消息。
    【解决方案3】:

    我最近遇到了这个问题,终于解决了。

    为此,您需要进入 Firebase 控制台中的通知,在下方,有一个部分高级选项。 (参见图 1)。在那里,在自定义数据参见图 2)中,您可以添加自己的数据作为密钥对值,这些值将始终在 onMessageReceived() 中接收,无论应用处于何种状态,后台或前台。

    进一步澄清其他面临类似问题的人:

    根据他们的文档hereonMessageReceived() 在应用程序处于前台和后台的情况下都会被调用,但仅当响应作为 数据消息。所以你需要在数据消息中发送响应。但是当没有服务器后端时,不清楚如何使用数据消息发送响应。

    【讨论】:

      【解决方案4】:

      Firebase 云消息传递在前台和后台的工作方式不同。文档中明确提到了这件事:

      如果您希望前台应用接收通知消息或数据消息,则需要编写代码来处理 onMessageReceived 回调。

      参考:Receive messages in an Android app

      所以,据我所知,目前,根据文档,onMessageReceived 仅在应用程序处于前台时才会触发。但是您可以做的一件事是使用广播接收器来实现您想要的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-30
        • 1970-01-01
        • 2014-10-10
        • 1970-01-01
        相关资源
        最近更新 更多