Skip to content

Polymer 2.0 - Firebase Messaging Error - Uncaught (in promise) DOMException: Registration failed - push service error #771

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
vinayakvanarse opened this issue May 3, 2018 · 11 comments

Comments

@vinayakvanarse
Copy link

vinayakvanarse commented May 3, 2018

I have a PWA app using Polymer 2.0 and firebase.
Firebase messaging is throwing error - Uncaught (in promise) DOMException: Registration failed - push service error.

Describe your environment

  • Operating System version: Mac High Sierra 10.13.4
  • Firebase SDK - [email protected]
  • Firebase Tools version: 3.18.4
  • Firebase Product: messaging

bower polymerfire#^2.2.1 cached https://github.com/firebase/polymerfire.git#2.2.1
bower polymerfire#^2.2.1 validate 2.2.1 against https://github.com/firebase/polymerfire.git#^2.2.1
bower firebase#* cached https://github.com/firebase/firebase-bower.git#4.6.1
bower firebase#* validate 4.6.1 against https://github.com/firebase/firebase-bower.git#*
bower firebase#* new version for https://github.com/firebase/firebase-bower.git#*
bower firebase#* resolve https://github.com/firebase/firebase-bower.git#*
bower firebase#* download https://github.com/firebase/firebase-bower/archive/v4.13.0.tar.gz
bower firebase#* extract archive.tar.gz
bower firebase#* resolved https://github.com/firebase/firebase-bower.git#4.13.0
bower firebase#^4.13.0 install #4.13.0
bower polymerfire#^2.2.1 install polymerfire#2.2.1

The messaging doesn't work in Chrome Desktop - [Google Chrome is up to date
Version 66.0.3359.139 (Official Build) (64-bit)] as well as in Chrome Android - [Application version Chrome 66.0.3359.126

Error trace in Chrome console Desktop version -
Uncaught (in promise) DOMException: Registration failed - push service error
Promise.then (async)
refreshToken @ firebase-messaging.html:87
activateMessaging @ firebase-messaging.html:125
activate @ firebase-messaging.html:243
_bootstrapApp @ firebase-messaging.html:259
runMethodEffect @ property-effects.html:813
runEffectsForProperty @ property-effects.html:159
runEffects @ property-effects.html:125
_propertiesChanged @ property-effects.html:1703
_flushProperties @ properties-changed.html:338
_flushProperties @ property-effects.html:1551
_invalidateProperties @ property-effects.html:1523
_setProperty @ property-effects.html:1508
Object.defineProperty.set @ properties-changed.html:150
__appNameChanged @ firebase-common-behavior.html:47
runObserverEffect @ property-effects.html:214
runEffectsForProperty @ property-effects.html:159
runEffects @ property-effects.html:125
_propertiesChanged @ property-effects.html:1703
_flushProperties @ properties-changed.html:338
_flushProperties @ property-effects.html:1551
ready @ property-effects.html:1656
ready @ element-mixin.html:546
ready @ dir-mixin.html:140
ready @ legacy-element-mixin.html:198
ready @ class.html:232
ready @ class.html:232
ready @ class.html:232
_enableProperties @ properties-changed.html:321
connectedCallback @ properties-mixin.html:208
connectedCallback @ element-mixin.html:532
connectedCallback @ dir-mixin.html:150
connectedCallback @ legacy-element-mixin.html:105
_attachDom @ element-mixin.html:588
_readyClients @ element-mixin.html:561
_flushClients @ property-effects.html:1565
_propertiesChanged @ property-effects.html:1699
_flushProperties @ properties-changed.html:338
_flushProperties @ property-effects.html:1551
ready @ property-effects.html:1656
ready @ element-mixin.html:546
ready @ my-app.html:540
_enableProperties @ properties-changed.html:321
connectedCallback @ properties-mixin.html:208
connectedCallback @ element-mixin.html:532
(anonymous) @ my-app.html:849

Code used

my-app.html (PolymerElement)
<script src="bower_components/firebase/firebase-app.js"></script>
<script src="bower_components/firebase/firebase-auth.js"></script>
<script src="bower_components/firebase/firebase-database.js">
</script>
<script src="bower_components/firebase/firebase-firestore.js">
</script>
<script src="bower_components/firebase/firebase-messaging.js">
</script>
<script src="bower_components/firebase/firebase-storage.js">
</script>

  <firebase-app
    auth-domain="[[configFirebase.authDomain]]"
    database-url="[[configFirebase.databaseURL]]"
    api-key="[[configFirebase.apiKey]]"
    storage-bucket="[[configFirebase.storageBucket]]"
    messaging-sender-id="[[configFirebase.messagingSenderId]]">
  </firebase-app>

  <firebase-auth
    id="auth"
    user="{{user}}"
    signed-in="{{signedIn}}"
    status-known="{{statusKnown}}"
    on-error="_handleError">
  </firebase-auth>

  <firebase-messaging
        id="messaging"
        token="{{token}}"
        on-message="handleMessage"
        active="{{fcmActive}}"
        status-known="{{fcmStatusKnown}}">
  </firebase-messaging>

   <firebase-document path="/users/[[user.uid]]/token" data=". 
    {{tokenDocVal}}">
   </firebase-document>

  class MyApp extends Polymer.Element {
       static get is() { return 'my-app'; }

    ready() {
      this.addEventListener('request-fcm-permission',        
         this._requestFcmPermission);
      super.ready();
    }

   _requestFcmPermission() {
      var fcm = this.$.messaging;
      var self = this;
      if (this.user && !fcm.active) {
        fcm.requestPermission()
          .then(function(){
            console.log('FCM permission granted');
            console.log('[[token]] ->' + self.token);
            self.tokenDocVal = self.token;
          })
          .catch(function(e){
            console.warn('FCM permission blocked', e);
          })
      }
    }

    ... other html code ....

And the
firebase-messaging-sw.js

    importScripts('/bower_components/firebase/firebase-app.js');
    importScripts('/bower_components/firebase/firebase-
       messaging.js');

   firebase.initializeApp({
    'messagingSenderId': '<project-ms-id>'
   });

   var messaging = firebase.messaging();

   messaging.setBackgroundMessageHandler(function(payload) {
   console.log('[firebase-messaging-sw.js] Received background 
     message 
      ', payload);

   var notificationTitle = payload.notification.title;
   var notificationOptions = {
   body: payload.notification.body,
   icon: '../images/fresh/android/android-launchericon-24-24.png'
    };
   return self.registration.showNotification(notificationTitle,
    notificationOptions);
   });

   Manifest.json includes "gcm_sender_id": "103953800507",

Request help to resolve the issue. I have been on this issue for long and don't know why its happening and how to fix it.

I have also added a comment on the issue on GITHUB -
#152

@google-oss-bot
Copy link
Contributor

Hey there! I couldn't figure out what this issue is about, so I've labeled it for a human to triage. Hang tight.

@google-oss-bot
Copy link
Contributor

Hmmm this issue does not seem to follow the issue template. Make sure you provide all the required information.

@mmermerkaya
Copy link
Contributor

Firebase SDK does not have a 3.18.4 version. See versions on NPM here.

Please let us know the actual SDK version you're using.

@vinayakvanarse
Copy link
Author

vinayakvanarse commented May 5, 2018

My bad. The Firebase SDK version is - [email protected]. Updated the Problem Ticket.

@vinayakvanarse
Copy link
Author

Hi, any luck in resolving or guidance on where it is going wrong.

@mmermerkaya
Copy link
Contributor

I can't reproduce this. Do you have an online app that I can test? Or somewhere I can see your whole project?

@mmermerkaya
Copy link
Contributor

Closing for now, will reopen if you can help us reproduce the issue.

@vinayakvanarse
Copy link
Author

vinayakvanarse commented May 12, 2018

Hi, I have attached screenshots of the behaviour. Sequence of events is stored as filename in chronological order just to simplify things. I have also attached 3 files from the PWA namely .. index.html, my-app.html (main element), login.html and firebase-sw.js. Hope it will provide all the context to the issue.

I got another issue on login (but will set it out in different GIT issue) .....I did further testing and it works fine in SAFARI (both desktop and iPhone 6). Works fine in CHROME (desktop) .. just doesn't work fine in Pixel, Pixel XL and other android phones. All android after 1st time login to the PWA (which happens quite straight through)... subsequent logins are always double attempt.

Please reopen the issue as it's still happening.

Source code - https://github.com/vinvantest/git_issue_firebase_login

@mmermerkaya
Copy link
Contributor

AFAICT the error is thrown from the polymerfire package, and your messaging configs seem fine. Did you try opening an issue in firebase/polymerfire, or in StackOverflow?

@vinayakvanarse
Copy link
Author

vinayakvanarse commented May 14, 2018

No ... I haven't done it in firebase/polymerfire yet. I will raise it now and provide a link here.

Raised a new issue....here is the link but no one has picked it but
FirebaseExtended/polymerfire#345

@vinayakvanarse
Copy link
Author

vinayakvanarse commented Jun 7, 2018

Hi... I raised a support ticket with Firebase... I was suggested to raise it with Polymerfire team.

On 7 Jun 2018, at 6:58 am, [email protected] wrote:

Hello Vinayak,

If this is an issue with PolymerFire, you'll need to follow up on their issue tracker. I also suggest checking out some of the solutions from StackOverflow. It looks like, for most people, the error is happening due to some issue with the manifest file.

Regards,
Andy

I checked my manifest file and it is getting loaded correctly and has correct MIME/Type: application/json

Not sure how to resolve the issue.

Manifest file -->
{
"name": "<app_name>",
"short_name": "<app_name_short>",
"description": "",
"start_url": "./?utm_source=web_app_manifest",
"scope": "./",
"display": "standalone",
"theme_color": "#fff",
"background_color": "#fff",
"gcm_sender_id": "103953800507",
}

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

3 participants