unity-firebase 云消息传递问题

问题描述

我开发了一款具有统一性的游戏,并且使用了“Firebase Cloud Messaging”进行推送通知我有一个问题。当我清除托盘中收到的通知时,与它相关的消息似乎也被删除了。所以当我打开应用程序时不会调用“MessageReceived”。

  1. 我在 android 上遇到了这个问题。尚未在 ios 上对其进行测试。
  2. 我使用 firebase admin sdk 发送消息。(用 node js 编写)

有没有办法在不删除消息的情况下清除通知托盘? 提前感谢您的任何帮助

解决方法

当应用不在 Android 上运行时,需要一些额外的设置来路由通知。

See the Firebase docs for more information

引用自文档:

当应用根本没有运行并且用户点击通知时,默认情况下,消息不会通过 FCM 的内置回调路由。在这种情况下,消息负载是通过用于启动应用程序的 Intent 接收的。

应用在后台时收到的消息将其通知字段的内容用于填充系统托盘通知,但该通知内容不会传达给 FCM。也就是说,FirebaseMessage.Notification 将为空值。

基本上,您需要使用与 Firebase Messaging 捆绑在一起的自定义启动活动,而不是默认的 #Monitor windows tasks for checkmk raw 1.6.0 #Last update: 31.05.2021 $tasks = Get-ScheduledTask | Get-ScheduledTaskInfo | Select TaskName,LastRunTime,LastTaskResult #CHECKMK states #$OK = "0 MWT -" #$Warning = "1 MWT -" #$Crit = "2 MWT -" #$Unknown = "3 MWT -" $incre foreach($task in $tasks) { if($($task.LastTaskResult) -eq 0){ $incre++ Write-Host "0 MWT$incre - Scheduled task: $($task.TaskName) was succesfull" } else{ $incre++ Write-Host "2 MWT$incre - Scheduled task: $($task.TaskName) has failed." } } Clear-Variable -Name "incre" 。这个名为 2 MWT1 - Scheduled task: ftp has failed. 0 MWT2 - Scheduled task: Optimize Start Menu Cache Files-S-1-5-21-3586077036-2416152140-2432273966-1104 was succesfull 0 MWT3 - Scheduled task: Adobe Acrobat Update Task was succesfull 0 MWT4 - Scheduled task: FSRM_Update was succesfull 的活动可以在 UnityPlayerActivity 内找到。您需要创建一个 MessagingUnityPlayerActivity 文件以指示应用使用此自定义 Activity 而不是默认的 Unity Activity。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...