我在我的应用中使用firebase通知服务。但我面临一些挑战。我需要在firebase通知到来时执行我的代码并设置首选项。是否有任何方法或回调来获得firebase通知。我没有使用FCM的数据消息,因为我没有任何服务器。因此,问题是从firebase的默认通知管理器获得通知。提前谢谢。
答案 0 :(得分:2)
不,当您收到通知消息时,无法获得有保证的回调。如果应用程序位于前台,则会触发onMessageReceived回调,但当应用程序在后台时,将显示自动生成的通知,并且不会触发回调。
不幸的是,此时Firebase控制台不允许使用数据消息。因此,如果不使用某种类型的服务器,就无法做任何事情。
答案 1 :(得分:1)
选中此链接firebase notification receive 在onMessageReceived(RemoteMessage remoteMessage)
方法中执行您的代码。
答案 2 :(得分:0)
检查此链接Firebase push notifications update DB,之前我问过您的问题,并且有一个解决方案。
答案 3 :(得分:0)
我最近遇到了这个问题并最终解决了。
要执行此操作,您需要转到Firebase控制台中的通知,在下半部分中,有一部分高级选项。 (参见图1 )。在自定义数据(参见图2 )中,您可以添加自己的数据作为密钥对值,这些值将始终在 onMessageReceived()中接收,无论应用处于什么状态,背景或前景。
进一步澄清面临类似问题的其他人:
根据他们的文档here,在应用程序位于Foreground和Background中的情况下,都会调用 onMessageReceived(),但仅当在数据中将响应作为包发送时消息即可。所以你需要在数据消息中发送响应。但是当没有服务器后端时,不清楚如何使用数据消息发送响应。
答案 4 :(得分:0)
在前景和背景情况下,Firebase云消息传递的工作方式有所不同。在文档中明确提到了这一点:
如果您希望前台的应用程序接收通知消息或数据消息,则需要编写代码来处理
BG 863 ČŠ
回调。
参考: Receive messages in an Android app
因此,据我所知,根据文档,BG 863 ČS
仅在应用程序位于前台时才被触发。但是,您可以做的一件事就是与广播接收器一起玩,以实现所需的功能。