Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我的邮递员(数据)信息没有到达我的android应用程序?_Java_Android_Firebase_Firebase Cloud Messaging_Postman - Fatal编程技术网

Java 为什么我的邮递员(数据)信息没有到达我的android应用程序?

Java 为什么我的邮递员(数据)信息没有到达我的android应用程序?,java,android,firebase,firebase-cloud-messaging,postman,Java,Android,Firebase,Firebase Cloud Messaging,Postman,在一个例子中,我遇到了这样一个问题:firebase消息在我的应用程序处于后台时,不会在我的firebase类中触发onMessageReceived()事件。正如所指出的,原因似乎是firebase控制台无法发送数据消息,它只发送通知消息,而不会到达事件。他建议使用邮递员向我的应用程序发送数据消息。我设置了一个POST请求,并将项目的API密钥以及内容类型添加到Headers部分,如下所示: Authorization = key=[firebase project key] Content-

在一个例子中,我遇到了这样一个问题:firebase消息在我的应用程序处于后台时,不会在我的firebase类中触发onMessageReceived()事件。正如所指出的,原因似乎是firebase控制台无法发送数据消息,它只发送通知消息,而不会到达事件。他建议使用邮递员向我的应用程序发送数据消息。我设置了一个POST请求,并将项目的API密钥以及内容类型添加到Headers部分,如下所示:

Authorization = key=[firebase project key]
Content-Type = application/json
我在firebase令牌的帮助下访问了我的应用程序:

{
    "to": "[token]",
    "notification": {
        "title": "This is a title"
        "body": "This is a test"
    },
    "data": {
        "title": "This is a data title"
        "body": "This is a data message"
        "key1": "value1"
    }
}
我向您展示的版本的工作原理与firebase控制台消息类似。在前台(显示通知部分的内容)并传输数据时,它会正确到达应用程序。但当在后台时,它会到达应用程序,但不会触发onMessageReceived()事件。我试图删除通知部分,使消息成为“纯”数据消息,但在这种情况下,消息根本无法到达我的应用程序。 有人知道我做错了什么吗


(我可以看出它没有到达onMessageReceived事件,因为在那里我给通知一个不同的徽标以进行测试)

很明显,这是因为通知部分为空,除非不是空,否则您只执行通知生成器。(至于来自的代码)

您可以将上面的内容修改为下面的内容,然后重试

if (remoteMessage.getNotification() != null || remoteMessage.getData() !=null ) {
       //This will execute when either notification or data message is not null
}

很高兴这有帮助。
if (remoteMessage.getNotification() != null || remoteMessage.getData() !=null ) {
       //This will execute when either notification or data message is not null
}