Skip to content

Event handler must be added on the initial evaluation of worker script #7937

Open
@stefan-krajnik

Description

@stefan-krajnik

Operating System

macOS Ventura 13.0

Browser Version

Google Chrome Version 120.0.6099.199 (Official Build) (arm64)

Firebase SDK Version

9.22.0

Firebase SDK Product:

Messaging

Describe your project's tooling

React app with Webpack

Describe the problem

I've been seeing these errors in sentry for a while, they come from service worker file even if I register service worker only if isSupported() passes.

This browser doesn't support indexedDb.open() (ex. Safari iFrame, Firefox Private Browsing, etc) (messaging/indexed-db-unsupported).

So I decided to do the same check in service worker but I'm getting these warnings if I call getMessaging asynchronously after isSupported() is resolved (see the screenshot)

Event handler of 'push' event must be added on the initial evaluation of worker script
Event handler of 'pushsubscriptionchange' event must be added on the initial evaluation of worker script.
Event handler of 'notificationclick' event must be added on the initial evaluation of worker script.
295329942-1cdebf24-4e3c-4e85-8c94-19072d46f3ba

Can you please confirm my approach with calling getMessaging asynchronously only if isSupported is correct ? If not what is the correct way using isSupported in service worker to prevent getting the error mentioned at the beginning ?

Steps and code to reproduce issue

  • call getMessaging asynchronously in your firebase-messaging-sw.js file

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions