fune/mobile/android/android-components/components/lib/push-firebase
Jonathan Almeida 81640524f0 [components] Closes https://github.com/mozilla-mobile/android-components/issues/5677: Catch all known non-fatal push errors
Previously, we wanted to throw on all unknown push errors so that we
were notified on them. Since this seems to be more common than
originally expected, we should just catch them and in a future version,
we should log them without crashing.

All of these push errors can be considered recoverable except
for InternalPanic.
2020-01-22 17:17:16 -05:00
..
src [components] Closes https://github.com/mozilla-mobile/android-components/issues/5677: Catch all known non-fatal push errors 2020-01-22 17:17:16 -05:00
build.gradle [components] Closes https://github.com/mozilla-mobile/android-components/issues/3280: Add isServiceAvailable to PushService 2019-08-22 14:39:00 -04:00
proguard-rules.pro [components] Closes https://github.com/mozilla-mobile/android-components/issues/1917: Add lib-push-firebase component 2019-05-29 14:17:45 -04:00
README.md [components] Closes https://github.com/mozilla-mobile/android-components/issues/1917: Add lib-push-firebase component 2019-05-29 14:17:45 -04:00

Android Components > Libraries > Push-Firebase

A concept-push implementation using Firebase Cloud Messaging (FCM).

This implementation of concept-push uses Firebase Cloud Messaging. It can be used by Android devices that are supposed by Google Play Services.

Usage

Add the push service for providing the encrypted messages:

class FirebasePush : AbstractFirebasePushService()

Expose the service in the AndroidManifest.xml:

<service android:name=".push.FirebasePush">
    <intent-filter>
        <action android:name="com.google.firebase.MESSAGING_EVENT" />
    </intent-filter>
</service>

The service can be started/stopped directly if required:

val service = FirebasePush()

serivce.start()
serivce.stop()

See feature-push for more details on how to use the service with Autopush.

Setting up the dependency

Use Gradle to download the library from maven.mozilla.org (Setup repository):

implementation "org.mozilla.components:lib-push-firebase:{latest-version}"

Adding Firebase Support

Extend AbstractFirebasePushService with your own class:

class FirebasePush : AbstractFirebasePushService()

Place your keys file (google-services.json) for FCM in the app module of the project.

Optionally, add meta tags to your AndroidManifest.xml to disable the push service from automatically starting. This is not support ed yet (see #2603).

See the concept-push documentation for generic examples of using the API of components implementing concept-push.

License

This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this
file, You can obtain one at http://mozilla.org/MPL/2.0/