firebase / firebase-js-sdk

Firebase Javascript SDK
https://firebase.google.com/docs/web/setup
Other
4.86k stars 891 forks source link

FR: Firebase Cloud Messaging - file:// based environment support #3034

Open patburke234 opened 4 years ago

patburke234 commented 4 years ago

Describe your environment

Describe the problem I am developing an app for KaiOS, a fork of the old Firefox OS, for which apps are based on HTML5 + JS. When compiling and running on device, Firebase Cloud Messaging stops working. I receive an error as follows. I believe the issue is due to the fact that on device the app is served in the browser via a file:// based URL scheme rather than a http:// based scheme.

DOMException: A request was placed against a transaction which is currently not active, or which is finished.

In my research, I have found that Cordova, Expo, and other file:// based environments have had issues around the use of IndexDB not being supported, which FCM seems to rely on. I can confirm that KaiOS does have full support for IndexDB, however the above issue persists.

Relevant Code:

import firebase from "firebase";

const messaging = firebase.messaging();
messaging.usePublicVapidKey("<my-key-from-firebase-settings>");

messaging.getToken().then((currentToken) => {
    ...
}).catch((err) => {
    ...
});

Note: I am aware that this is very similar to my other issue I logged: #3027 however it is for a different Firebase product so I wanted to document both.

raiym commented 3 years ago

Confirm the same error on KaiOS 2.5.2 (which is Firefox 48)