fcm-client

Python client for Firebase Cloud Messaging (FCM)


Keywords
fcm, push, notification, google, cloud, messaging, android
License
Apache-2.0
Install
pip install fcm-client==0.2.2

Documentation

fcm-client

Python client for Firebase Cloud Messaging (FCM). Check documentation to learn how to use it.

The library was originally written by FCM client by Sardar Yumatov. It seems to have been abandoned around 2015 or 2016. When google announced the move to Firebase, there was a need for a updated version of this software.

Requirements

  • requests - HTTP request, handles proxies etc.
  • six for python 3 compatibility.

Alternatives

Th only alternative library known at the time of writing was pyfcm. This library differs in the following design decisions:

  • Predictable execution time. Do not automatically retry request on failure. According to Google's recommendations, each retry has to wait exponential back-off delay. We use an async back-end like Celery, where the best way to retry after some delay will be scheduling the task with countdown=delay. Sleeping while in Celery worker hurts your concurrency.
  • Do not forget results if you need to retry. This sounds obvious, but pyfcm drops important results, such as canonical ID mapping if request needs to be (partially) retried.
  • Clean pythonic API. No need to borrow all Java like exceptions etc.
  • Do not hard-code validation, let FCM fail. This decision makes library a little bit more future proof.

Support

FCM client was created by John Loehrer, contact me if you find any bugs or need help. You can view outstanding issues on the FCM Github page.