FCM 推送通知在没有 onMessage 的情况下显示

FCM Push Notification showing without onMessage

我正尝试在 Web </> 中使用 Firebase 发送推送通知。它显示推送通知并且工作正常。但是,当我尝试访问函数

中的 console.log(payload)
messaging.onMessage((payload) => {
    console.log(payload);
    const noteTitle = payload.notification.title;
    const noteOptions = {
        body: payload.notification.body,
        icon: payload.notification.icon,
    };
    new Notification(noteTitle, noteOptions);
});

控制台没有输出,onMessage没有调用,但是推送通知成功

我的问题是消息从哪里发送到推送通知? 我需要在顶部导航中显示通知 bar.How 是否将通知附加到导航栏?

如果您查看 receiving messages 文档中的第一个 table,您会发现当您的页面处于非活动状态时,SDK 会自动显示通知消息。所以在这种情况下,即使您没有编写 onMessage 处理程序,也会显示通知。

这模仿了移动平台上的通知行为,OS 在应用未激活时显示这些消息。

如果您不希望 SDK/OS 显示消息,您可以发送一条 data 消息 - 它总是传送到您的 onMessage 并且永远不会自动显示。