Skip to content

[Discussion] Where to go with the Parse Push for Android #572

@inlined

Description

@inlined

Given the coming shutdown, I think it's time to discuss the plans that would replace my old attempt at fixing Push. What should change in the Parse SDK? The new FCM SDKs have all the right bindings so the Parse SDK can be built to work natively with FCM without requiring the compile-time dependency on GMS. It'd be a bit of dead code when users don't use Push and very thin stringly-typed bindings when it is there. The recommendations I'm feel are clear:

  1. Rip out PPNS if it hasn't been done already.
  2. Rip out all existing Push code actually (not ParseInstallation, just all the push utils for registering). Stub classes may need to be available for a while to keep the manifest references working. Changes to the manifest have always caused customer support issues.
  3. Deprecate the senderID field in the manifest. To use FCM you already need googleservices.json which includes this. Parse's one-off attribute will on longer be read in the FCM so it should be dropped from documentation to avoid confusion.
  4. Add or reuse a BrodacastReceiver to receive the com.google.firebase.INSTANCE_ID_EVENT. If I recall the innards correctly, this may be a local broadcast event so it could possibly even be done dynamically. To avoid an SDK dependency on GMSCore you'll need to find out which extra had the InstanceId before you stuff it in the ParseInstallation. About 10LOC can replace hundreds of push code and without any GMSCore dependency.

The last bit I'm not clear about is what should be done with ParsePushBroadcastReceiver. It has a lot of cool features that I was proud of at the time, but it's largely redundant with FirebaseMessagingService now. For better or worse, its interpretation of the payload sets the standard. Parse developers will be able to use multiple push providers if they use a standard message payload.

ParseServer should probably have android-specific code (just like it has iOS specific code) to push the visible fields into the notification key. From there I'd recommend either promoting FirebaseMessagingService as as a single standard across Android or upgrade ParsePushBroadcastReceiver to understand notification in the payload.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions