Firebase 将messaging.setBackgroundMessageHandler中的通知数据传送到网页

Firebase 将messaging.setBackgroundMessageHandler中的通知数据传送到网页,firebase,service,firebase-cloud-messaging,worker,Firebase,Service,Firebase Cloud Messaging,Worker,我正在尝试将服务人员收到的数据传回网页 网页上的“navigator.serviceWorker.controller”为空。服务工作者将self.client设置为空 任何示例或说明都将有助于您所能做的是获取一个窗口客户端列表,该列表将返回一个源站选项卡列表,然后向每个窗口客户端发布一条消息。(此代码将位于setBackgroundMessageHandler())中: const promiseChain = clients.matchAll({ type: 'window',

我正在尝试将服务人员收到的数据传回网页

网页上的“navigator.serviceWorker.controller”为空。服务工作者将self.client设置为空


任何示例或说明都将有助于

您所能做的是获取一个窗口客户端列表,该列表将返回一个源站选项卡列表,然后向每个窗口客户端发布一条消息。(此代码将位于
setBackgroundMessageHandler()
)中:

const promiseChain = clients.matchAll({
    type: 'window',
    includeUncontrolled: true
  })
  .then((windowClients) => {
    for (let i = 0; i < windowClients.length; i++) {
      const windowClient = windowClients[i];
      windowClient.postMessage(data);
    }
  })
  .then(() => {
    return registration.showNotification('my notification title');
  });
  return promiseChain;
 navigator.serviceWorker.addEventListener('message', function(event) {
    console.log('Received a message from service worker: ', event.data);
  });