Firebase消息`setBackgroundMessageHandler`覆盖通知正文#AskFirebase
我正在使用新的Firebase消息`setBackgroundMessageHandler`覆盖通知正文#AskFirebase,firebase,web-push,firebase-admin,Firebase,Web Push,Firebase Admin,我正在使用新的admin.messaging().sendToDevice()方法发送Web推送通知。我同时发送通知和数据,以便在消息中向用户显示一些上下文 在客户端,我使用firebase.messaging().setBackgroundMessageHandler()来处理接收消息 问题是永远不会调用setBackgroundMessageHandler()。我尝试了来自的解决方案,但如果我更改服务器上的有效负载结构,在数据字段中添加通知,则会抛出一个错误,说明我应该只在数据中使用字符串作
admin.messaging().sendToDevice()
方法发送Web推送通知。我同时发送通知
和数据
,以便在消息中向用户显示一些上下文
在客户端,我使用firebase.messaging().setBackgroundMessageHandler()
来处理接收消息
问题是永远不会调用setBackgroundMessageHandler()
。我尝试了来自的解决方案,但如果我更改服务器上的有效负载结构,在数据字段中添加通知,则会抛出一个错误,说明我应该只在数据中使用字符串作为值(通知是一个对象。请参阅)
如果我不在服务器上使用firebase.messaging
,而只是按照另一个答案建议进行重组,我将无法享受clickAction
的精彩功能,这让我不用亲自处理通知click
我还向service worker上的push
事件添加了侦听器,并且我收到了完整的负载(通知和数据都可用),它只是不调用回调
这是firebase.messaging.setBackgroundMessageHandler()的一个bug吗?还是我没有按预期的方式使用它?我联系了Firebase支持人员,他们说这是预期的行为
因此,如果一个人想在发生推送时做某事,他应该只发送数据
字段。如果发送了通知
字段,则该字段将优先,并且不会调用回调,但用户将收到通知 不要将“通知”
键嵌套在“数据”
键内。它们都应该是顶级键,并且都是可选的。因此,尝试类似于sendToDevice(registrationToken,{notification:{title:'title'}}})的方法。