Android Firebase Cloud Messaging


Exemple

Tout d'abord, vous devez configurer votre projet en ajoutant Firebase à votre projet Android en suivant les étapes décrites dans cette rubrique .

Configurer Firebase et le SDK FCM

Ajoutez la dépendance FCM à votre fichier build.gradle niveau de l' build.gradle

dependencies {
 compile 'com.google.firebase:firebase-messaging:11.0.4'
}

Et tout en bas (c'est important) ajouter:

// ADD THIS AT THE BOTTOM
apply plugin: 'com.google.gms.google-services'

Modifier le manifeste de votre application

Ajoutez les éléments suivants au manifeste de votre application:

  • Un service qui étend FirebaseMessagingService . Ceci est nécessaire si vous souhaitez effectuer une gestion des messages au-delà de la réception des notifications sur les applications en arrière-plan.

  • Un service qui étend FirebaseInstanceIdService pour gérer la création, la rotation et la mise à jour des jetons d'inscription.

Par exemple:

    <service
        android:name=".MyInstanceIdListenerService">
        <intent-filter>
            <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
        </intent-filter>
    </service>
    <service
        android:name=".MyFcmListenerService">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT" />
        </intent-filter>
    </service>

Voici des implémentations simples des 2 services.

Pour récupérer le jeton d'enregistrement actuel, onTokenRefresh() la classe FirebaseInstanceIdService et remplacez la méthode onTokenRefresh() :

public class MyInstanceIdListenerService extends FirebaseInstanceIdService {

    // Called if InstanceID token is updated. Occurs if the security of the previous token had been
    // compromised. This call is initiated by the InstanceID provider.
    @Override
    public void onTokenRefresh() {
        // Get updated InstanceID token.
        String refreshedToken = FirebaseInstanceId.getInstance().getToken();

        // Send this token to your server or store it locally
    }
}

Pour recevoir des messages, utilisez un service qui étend FirebaseMessagingService et remplacez la méthode onMessageReceived .

public class MyFcmListenerService extends FirebaseMessagingService {
    
    /**
     * Called when message is received.
     *
     * @param remoteMessage Object representing the message received from Firebase Cloud Messaging.
     */
    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        String from = remoteMessage.getFrom();

        // Check if message contains a data payload.
        if (remoteMessage.getData().size() > 0) {
            Log.d(TAG, "Message data payload: " + remoteMessage.getData());
            Map<String, String> data = remoteMessage.getData();
        }

        // Check if message contains a notification payload.
        if (remoteMessage.getNotification() != null) {
            Log.d(TAG, "Message Notification Body: " + remoteMessage.getNotification().getBody());
        }

        // do whatever you want with this, post your own notification, or update local state
    }

Dans Firebase, vous pouvez regrouper les utilisateurs en fonction de leur comportement, par exemple "AppVersion, utilisateur gratuit, utilisateur d’achat ou règles spécifiques", puis envoyer une notification à un groupe spécifique en envoyant une fonctionnalité de rubrique dans FireBase.
enregistrer l'utilisateur dans l'utilisation du sujet

FirebaseMessaging.getInstance().subscribeToTopic("Free");

puis, dans la console fireBase, envoyer une notification par nom de sujet

Plus d'informations dans la rubrique dédiée Firebase Cloud Messaging .