我使用Android Studio和Firebase。我想在其他用户向他发送消息时向特定用户发送通知,我希望他的手机能够获得这些通知,即使他的应用根本没有运行。
我已尝试使用firebase本身的一些公会,youtube教程和谷歌。但我失败了。有人可以帮帮我吗?
答案 0 :(得分:2)
FCM有两种消息:下游和通知。根据应用程序状态,每种类型的行为都不同。
仅当应用在后台时,设备才会收到通知。它将显示在通知托盘中,或作为抬头通知显示。当您的应用处于前台时,您无法收到Notification
类消息。
您的应用在任何州都会收到下游消息。您将在FirebaseMessagingService
实施(onMessageReceived
)中收到该消息。
如果同时合并1和2,则会收到下游通知消息。因此,它将采取来自两个“世界”的行为。如果您的应用位于后台,则会收到Notification
消息;如果您的应用位于前台,则会收到Downstream
。此外,如果您点击指定了click_action
并且您已Intent Filter
执行此操作的通知,则会引导您转到Activity
并致电onNewIntent
或{{ 1}}取决于backstack。
所以,回答你的问题 - 如果你想总是收到新的消息通知 - 只发送onCreate
消息。即使应用程序被杀死它也会收到它,或者当应用程序变为活动状态时(如果启用了消息传递服务),或者立即启动。但是这样有一个缺点:你需要自己向用户显示通知(HeadsUp或常规)。
以下是常见的Firebase邮件正文:
Downstream
那么你需要什么 - 它以某种方式(如json或左右)将这些数据发送到带有一些标题的指定firebase url。 Here链接详细信息如何发送消息。请注意,有关如何在多个设备/群组中发送消息的信息,您需要在 {
"to" : "FIREBASE_TOKEN",
"notification" : { // Responsible for Notification kind of messages
"body" : "great match!",
"title" : "Portugal vs. Denmark",
"icon" : "myicon"
},
"data" : { // Responsible for Downstream kind of messages
"Nick" : "Mario",
"Room" : "PortugalVSDenmark"
}
}
字段中仅指定您的合作伙伴FirebaseToken
。