Firebase 消息“setBackgroundMessageHandler”覆盖通知正文#AskFirebase

Firebase messaging `setBackgroundMessageHandler` overrides notification body #AskFirebase

我正在使用新的 admin.messaging().sendToDevice() 方法发送网络推送通知。我同时发送了 notificationdata,这样我就可以在消息中向用户展示一些上下文。

在客户端,我使用 firebase.messaging().setBackgroundMessageHandler() 来处理接收消息。

问题是 setBackgroundMessageHandler() 永远不会被调用。我尝试了 a similar question but if I alter the payload structure on the server to add the notification in the data field an error is thrown saying I should only use strings as values in the data (the notification is an object. see admin.messaging.NotificationMessagePayload).

的解决方案

如果我不在服务器上使用 firebase.messaging 并且只是按照其他答案建议的那样进行重组,我将无法享受 clickAction 的精彩功能,这节省了我处理notificationclick我自己。

我还在 service worker 的 push 事件中添加了监听器,我收到了完整的负载(notificationdata 都可用),它只是不调用回调

这是 firebase.messaging.setBackgroundMessageHandler() 的错误吗?还是我没有按应有的方式使用它?

我联系了 Firebase 支持,他们说这是预期的行为。

因此,如果有人想在 push 发生时做某事,他应该只发送 data 字段。如果发送 notification 字段,它将优先并且不会调用回调,但用户会收到通知。