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