Adding Firebase FCM to reactjs app

2019-05-11 11:33发布

问题:

I am trying to send push notifications to users in my reactjs app. I have added firebase, requested user for notification permission. That's working.

But now I want to register device token. But it's giving me error:

Messaging: We are unable to register the default service worker. Failed to register a ServiceWorker: The script has an unsupported MIME type ('text/html'). (messaging/failed-serviceworker-registration)

Where to add firebase-messaging-sw.js file? How to register a service worker in react app?

Here is the code I am using to register device token:

messaging.getToken()
      .then(function(currentToken) {
        if (currentToken) {
         // sendTokenToServer(currentToken);
         // updateUIForPushEnabled(currentToken);
        } else {
          // Show permission request.
          console.log('No Instance ID token available. Request permission to generate one.');
          // Show permission UI.
        //  updateUIForPushPermissionRequired();
        //  setTokenSentToServer(false);
        }
      })
      .catch(function(err) {
        console.log('An error occurred while retrieving token. ', err);
        //showToken('Error retrieving Instance ID token. ', err);
        //setTokenSentToServer(false);
      });

Note: It's not react native but a web app.

回答1:

I have added firebase-messaging-sw.js file into my public directory (with index.html) file. That resolved the issue.

See more at this post