MatthieuLemoine / push-receiver

A library to subscribe to GCM/FCM and receive notifications within a node process.
https://medium.com/@MatthieuLemoine/my-journey-to-bring-web-push-support-to-node-and-electron-ce70eea1c0b0
MIT License
199 stars 75 forks source link

Fix #34 FCM registering problems and add TypeScript definitions #55

Open Patrick-Remy opened 2 years ago

Patrick-Remy commented 2 years ago

This PR fixes #34 and makes this project work now again (at least for me). Probably the README should be updated with the new options.

jexe commented 2 years ago

Thank you for this PR @Patrick-Remy - it's not quite fixed for me but your fork gets me much closer, as at least I can register tokens successfully -

However, when trying to send a push, I'm receiving messaging/internal-error when pushing to the token I've registered via push-receiver. Sending pushes to other tokens via the same mechanism (web, iOS) works just fine. Any idea what could be causing this?

Thx for any clues!

Patrick-Remy commented 2 years ago

Which API are you using for sending pushes to FCM devices? Does it work for real Android devices? Did you properly set the senderId according to your Firebase project?

jexe commented 2 years ago

Unfortunately don't have a real Android handy to test on, but has been working just fine for both iOS and web pushes..

I'm trying to send from a firebase function via the firebase messaging lib - something along the lines of admin.messaging().send({ ... payload ... })

https://firebase.google.com/docs/cloud-messaging/send-message

Patrick-Remy commented 2 years ago

In my tests I used the HTTP API, you could easily test it via curl: https://firebase.google.com/docs/cloud-messaging/http-server-ref

jexe commented 2 years ago

I get the same kind of response from that endpoint, something like: {"multicast_id":6378540861801009517,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"InternalServerError"}]}

(and verified that we get other kinds of appropriate errors for bad tokens if we send them, so, the token is legit but something else weird is happening)