Tu primer mensaje push de multidifusión usando temas de FCM

1. Introducción

Objetivos

En este laboratorio de código, aprenderá cómo instrumentar su aplicación multiplataforma para que pueda transmitir mensajes push a varios subgrupos de instancias de su aplicación utilizando temas de FCM.

Una vez que haya terminado, podrá aprovechar la infraestructura de FCM para administrar estos subgrupos, así como los mensajes push de multidifusión en los subgrupos.

Resumen de temas

Los temas son una forma compatible con la infraestructura de FCM de llegar a subgrupos de instancias de su aplicación con mensajes.

FCM proporciona las API para enviar mensajes y mantener suscripciones a estos temas. El acto de asociar y disociar una instancia de aplicación a un tema se denomina suscripción y cancelación de suscripción, respectivamente.

Los temas deben usarse para contenido disponible públicamente. Por ejemplo, mensajes sobre actualizaciones meteorológicas. Si desea enviar mensajes sensibles al usuario, use el SDK de administrador de Firebase para enviar mensajes de multidifusión a través de varios dispositivos .

La multidifusión basada en temas está optimizada para el rendimiento.

lo que aprenderás

  • Cómo suscribir (y dar de baja) usuarios a temas desde una aplicación móvil.
  • Cómo enviar mensajes push de multidifusión usando temas.
  • Cómo enviar mensajes a una combinación de temas utilizando condiciones de tema.
  • Cómo administrar las suscripciones a temas en el lado del servidor y realizar suscripciones y cancelaciones masivas.

lo que vas a construir

  • Una aplicación de Android que se suscribe o cancela la suscripción a temas y recibe mensajes cuando se envían a los temas.
  • Una integración del lado del servidor mediante el SDK de administración de Firebase, que se utilizará para enviar mensajes de temas a través de las API de FCM.

Lo que necesitarás

  • Un navegador de su elección, como Chrome.
  • IntelliJ IDEA IDE para desarrollar aplicaciones Java.
    • Asegúrese de habilitar la compatibilidad con Gradle durante la instalación.
  • IDE de Android Studio para desarrollar aplicaciones de Android.
  • Un dispositivo para ejecutar la aplicación de Android. Cualquiera de:
    • El emulador de Android. (Requiere configuración en Android Studio ).
    • Un dispositivo Android físico conectado a su computadora y configurado en modo desarrollador.
  • Una cuenta de Google para crear y administrar su proyecto de Firebase.

2. Preparación

Obtener el código

Clona el repositorio de GitHub desde la línea de comandos:

git clone https://github.com/firebase/quickstart-android.git fcm-codelab

El código de muestra se clonará en el directorio fcm-codelab .

cd fcm-codelab

La aplicación inicial para este codelab se encuentra en el directorio messaging de la rama fcm-topics-codelab . Siga los siguientes pasos para llegar al código de inicio. Contiene dos directorios StockNewsApp y StockNewsServer . El primero contiene la aplicación de Android de inicio y el segundo tiene el código del lado del servidor de inicio.

git checkout fcm-topics-codelab
cd messaging/fcm-topics-codelab/starter

La versión completa de este codelab se coloca en el directorio messaging/fcm-topics-codelab/completed .

Crear un proyecto de Firebase

  1. En la consola de Firebase , haga clic en Agregar proyecto , asigne al proyecto de Firebase el nombre StockNews y haga clic en continuar. Nota: Recuerde el ID de proyecto para su proyecto de Firebase (o haga clic en el ícono Editar para establecer su ID de proyecto preferido).

fc08f9a7808e4553.png

  1. Puede omitir la habilitación de Google Analytics. A los efectos de este codelab, no lo necesita. Haga clic en Continuar.
  2. Haga clic en Crear proyecto .

¡Felicidades! Acabas de crear tu proyecto de Firebase. Ahora, puede hacer clic en el nombre del proyecto para ingresar a la consola.

3. Configuración de la aplicación Firebase específica de la plataforma

La mayoría de los cambios de código necesarios para habilitar la compatibilidad con Firebase ya están registrados en el proyecto en el que está trabajando. Sin embargo, para agregar soporte para plataformas móviles, debe:

  • Registre la plataforma deseada en el proyecto Firebase
  • Descargue el archivo de configuración específico de la plataforma y agréguelo al código.

A los efectos de este laboratorio de programación, agregaremos una aplicación Firebase para Android.

84e0b3199bef6d8a.png Configurar Android

  1. En Firebase Console , seleccione Configuración del proyecto en la parte superior de la barra de navegación izquierda en la rueda dentada Configuración y haga clic en el ícono de Android debajo de Sus aplicaciones en la página General .

Debería ver el siguiente cuadro de diálogo: 8254fc299e82f528.png

  1. El valor importante que se debe proporcionar es el nombre del paquete de Android . Establézcalo en com.ticker.stocknews .
    1. El nombre del paquete proporcionado aquí debe ser el mismo que el proporcionado en AndroidManifest.xml de su código inicial de StockNewsApp . Si desea localizarlo o cambiarlo, siga estos pasos:
      1. En el directorio StockNewsApp , abra el archivo app/src/main/AndroidManifest.xml .
      2. En el elemento manifest , busque el valor de cadena del atributo package . Este valor es el nombre del paquete de Android.
  1. En el cuadro de diálogo de Firebase, pegue el nombre del paquete copiado en el campo de nombre del paquete de Android .
  2. No necesita el certificado de firma de depuración SHA-1 para este laboratorio de código, porque esta aplicación no se lanzará. Deje esto en blanco.
  3. Haga clic en Registrar aplicación .
  4. Continuando en Firebase Console, siga las instrucciones para descargar el archivo de configuración google-services.json .
  5. Puede omitir los pasos de configuración restantes, ya que todo lo demás ya está configurado en el código de la aplicación de inicio. Encontrará su aplicación en la lista de la página principal de Firebase Console.
  6. Copie el archivo google-services.json (que acaba de descargar) en el directorio messaging/fcm-topics-codelab/starter/StockNewsApp/app .

4. Cree y ejecute su aplicación

¡Ya está listo para comenzar a trabajar en su aplicación! Primero, compila y ejecuta la aplicación.

Importar la aplicación de inicio

Inicie Android Studio e importe la messaging/fcm-topics-codelab/starter/StockNewsApp desde el directorio del código de inicio.

Después de que se haya cargado el proyecto, también puede ver una alerta de que Git no está rastreando todos sus cambios locales, puede hacer clic en " Ignorar " o en la " X " en la parte superior derecha. (No devolverá ningún cambio al repositorio de Git).

En la esquina superior izquierda de la ventana del proyecto, debería ver algo como la imagen a continuación si está en la vista de Android . (Si está en la vista Proyecto , deberá expandir el proyecto para ver lo mismo)

b574ea0089ee87c6.png

Tenga en cuenta que Android Studio puede tardar varios segundos en compilar el proyecto en segundo plano por primera vez. Durante este tiempo, verá una rueda giratoria en la barra de estado en la parte inferior de Android Studio:

4bc64eb3b99eb0ae.png

Le recomendamos que espere hasta que esto haya terminado antes de realizar cambios en el código. Esto permitirá que Android Studio obtenga todos los componentes necesarios.

Además, si recibe un mensaje que dice "¿Recargar para que los cambios de idioma surtan efecto?" o algo similar, seleccione "Sí".

Configuración del emulador

Si necesita ayuda para configurar un emulador de Android, consulte el artículo Ejecute su aplicación .

Comprender el código de inicio de la aplicación de Android

  • El código de inicio es una aplicación de Android liviana con una funcionalidad e interfaz de usuario mínimas.
  • Ya se agregó una dependencia al SDK de Firebase-Messaging al archivo app/build.gradle .

f04ff8f48d186dff.png

  • En AndroidManifest.xml , ya se agregó un controlador de devolución de llamada MESSAGING_EVENT .
    • Este controlador, StockNewsMessagingService.java , amplía la clase FirebaseMessagingService que proporciona varias funciones relacionadas con Firebase Cloud Messaging. Consulte la documentación de FirebaseMessagingService para obtener más información. b843c4d33ee53166.png
    88fad1960f4a6ff5.png
    • Se llama a la función onNewToken cuando se crea o actualiza el token de registro de FCM. Consulte Supervisar la generación de tokens para obtener más información.
    • Se llama a la función onMessageReceived cuando se recibe un mensaje y la aplicación está en primer plano. Actualmente, simplemente registra el mensaje recibido.
  • Además, en AndroidManifest.xml , también se proporciona una clase Application de Android denominada StockNewsApplication . a4982a8731492dfc.pngccde692f7f68dc5a.png
    • Esta clase será la primera en ser instanciada cuando se inicie la aplicación.
    • En la función onCreate de la clase StockNewsApplication , se agrega una llamada de creación de token de registro de FCM. Generará un token de registro de FCM válido y lo registrará.
  • MainActivity.java agrega RecyclerView que muestra las opciones de Categoría de stock.
  • SubscriptionAdapter.java implementa RecyclerView.Adapter que dibuja la pantalla de selección de Categoría de acciones.
    • Cada categoría de acciones tiene un nombre y un conmutador de suscripción junto a ella.
    • Cambiar la palanca debería hacer una llamada de suscripción / cancelación de suscripción al tema de FCM.
    • Implementará estas llamadas en las próximas secciones.
  • La clase model/StockCategories.java contiene una lista de todas las categorías de existencias y sus nombres de temas asociados.

b32663ec4e865a18.png

Ejecute la aplicación de inicio

  1. Conecte su dispositivo Android a su computadora o inicie un emulador.
  2. En la barra de herramientas superior, seleccione su dispositivo o emulador Android de destino y presione el botón Ejecutar.

5b27fc5b237e06b9.png

  1. La interfaz de usuario de la aplicación tendrá el siguiente aspecto:

ff5b1a1c53231c54.png

  1. La aplicación creará un token de registro de FCM y lo registrará. Sin embargo, nada cambiará en la interfaz de usuario de la aplicación.
    1. Copie y guarde el token de registro de FCM, ya que se utilizará en los próximos pasos.

927eb66bc909f36b.png

5. Enviar un mensaje de prueba

Ahora está listo para enviar un mensaje de prueba a la instancia de la aplicación que configuró en el último paso.

Importar el código del servidor de inicio

Inicie IntelliJ IDEA y abra el proyecto messaging/fcm-topics-codelab/starter/StockNewsServer .

La vista del proyecto en la barra de navegación izquierda debería verse así:

da20711f6527dff6.png

Tenga en cuenta que Intellij IDEA puede tardar unos minutos en compilar su proyecto, incluida la obtención de las dependencias necesarias.

Comprender el código de inicio del servidor

  • El código de inicio del servidor es un proyecto Java basado en Gradle.
  • El archivo build.gradle ya tiene agregada la dependencia del SDK firebase-admin . Este SDK brinda acceso a varias funcionalidades de envío de mensajes FCM.

650fc733298588f8.png

  • Finalmente, hay dos clases, a saber:
    • FcmSender.java : esta clase contiene los siguientes métodos de nota:
      • initFirebaseSDK : Inicializa el SDK de firebase-admin.
      • sendMessageToFcmRegistrationToken : envía un mensaje a un token de registro de FCM.
      • sendMessageToFcmTopic : envía un mensaje a un tema de FCM.
      • sendMessageToFcmTopicCondition : envía un mensaje a una condición de tema de FCM.
    • FcmSubscriptionManager.java : esta clase contiene métodos que permiten administrar suscripciones a temas desde el lado del servidor.
      • initFirebaseSDK : Inicializa el SDK de firebase-admin.
      • subscribeFcmRegistrationTokensToTopic : suscribe tokens de registro de FCM a un tema de FCM.
      • unsubscribeFcmRegistrationTokensFromTopic : cancela la suscripción de los tokens de registro de FCM de un tema de FCM.

Configuración del código del servidor

  1. Primero, debemos configurar una cuenta de servicio de Firebase que permita que el SDK de firebase-admin autorice llamadas a las API de FCM.
    1. Vaya a Firebase Console, haga clic en el ícono de ajustes junto a Descripción general del proyecto en la barra de navegación izquierda y seleccione Configuración del proyecto . 8c2108d4d7c915e9.png
    2. En la página de configuración, seleccione Cuentas de servicio y haga clic en Crear cuenta de servicio . 84b128cc5dac0a85.png
    3. Ahora haga clic en el botón Generar nueva clave privada y comenzará una descarga automática de su archivo de clave.
    4. Cambie el nombre del archivo clave a service-account.json y cópielo en la carpeta messaging/fcm-topics-codelab/starter/StockNewsServer/src/main/resources .
    5. Tanto FcmSender.java como FcmSubscriptionManager.java cargan el archivo service-account.json desde classpath usando el siguiente código. 8dffbee658e0bdd.png
  2. En este punto, el código del servidor está listo. Ejecute Build -> Build Project desde la barra de menú superior.

Envío de un mensaje de prueba

  1. En FcmSender.java busque la función sendMessageToFcmRegistrationToken e inserte el token de registro de FCM que copió de la sección Ejecutar la aplicación de inicio en el campo registrationToken .
  2. En la función main , descomente solo la función sendMessageToFcmRegistrationToken y haga clic en ejecutar para ejecutar el código.
    1. Observe cómo se establece el token de registro de FCM en el campo Token del objeto message .
    2. Además, observe cómo hemos utilizado la API de send de la interfaz FirebaseMessaging .

52e4a3ec3f816473.png

  1. Esto debería enviar un mensaje a la instancia de la aplicación que configuró en el paso anterior.
  2. Cuando la instancia de la aplicación está en primer plano, debería ver el contenido del mensaje registrado.

d3540ec1089f97dd.png

  1. Y cuando la instancia de la aplicación está en segundo plano, observará que el mensaje aparece en la bandeja de notificaciones.

31203deca59c03fe.png

Genial, usaste Firebase Admin SDK para enviar mensajes a una instancia de la aplicación. Obtén más información sobre cómo usar Firebase Admin SDK en tu servidor .

6. Implementar suscripción / cancelación de suscripción a temas

En este paso, implementará acciones de suscripción y cancelación de suscripción de temas, en la opción Categoría de acciones de la aplicación de Android.

Cuando un usuario de la aplicación cambia el interruptor para una categoría de acciones en particular, se realizará una llamada de suscripción o cancelación de suscripción a un tema.

Código de revisión

  • Vaya a la clase SubscriptionAdapter.java en el código de la aplicación de Android y busque la clase RecyclerViewViewHolder .

6c0614199e684f6.png

  • El constructor de la clase configura un oyente para alternar la suscripción mediante setOnCheckedChangeListener .
  • Según el conmutador, las acciones de suscripción y cancelación de suscripción se realizan llamando a los métodos subscribeToStockCategory y unsubscribeFromStockCategory respectivamente.
  • El onBindViewHolder del RecyclerView Adapter llama al método setData para vincular el ViewHolder con la categoría de stock adecuada.

Implementar suscripción de tema

  1. En el método subscribeToStockCategory , implementará la llamada a la API subscribeToTopic del objeto FirebaseMessaging . El código podría ser algo como esto:
   void subscribeToStockCategory() {
      // Making call to FCM for subscribing to the topic for stockCategory
     FirebaseMessaging.getInstance().subscribeToTopic(stockCategory.getTopicName()).addOnSuccessListener(
          unused -> {
            // Subscribing action successful
            Log.i(TAG, "Subscribed to topic: " + stockCategory.getTopicName());
            Toast.makeText(itemView.getContext(), "Subscribed to " + stockCategory.getCategoryName(),
                Toast.LENGTH_SHORT).show();
          });
    }

Implementar cancelación de suscripción de tema

  1. De manera similar, en la condición else, implementará la llamada a la API unsubscribeFromTopic . Algo en la línea de lo siguiente:
void unsubscribeFromStockCategory() {
      // Making call to FCM for unsubscribing from the topic for stockCategory
      FirebaseMessaging.getInstance().unsubscribeFromTopic(stockCategory.getTopicName())
          .addOnSuccessListener(unused -> {
            // Unsubscribing action successful
            Log.i(TAG, "Unsubscribed from topic: " + stockCategory.getTopicName());
            Toast.makeText(itemView.getContext(), "Unsubscribed from " + stockCategory.getCategoryName(),
                Toast.LENGTH_SHORT).show();
          });
    }

Probemos

  1. Ejecute la aplicación y alterne las opciones de Categoría de acciones para ejecutar acciones de suscripción y cancelación de suscripción. Se vería algo como esto:

Suscribir

Darse de baja

7. Envío de su primer mensaje de tema

En este paso, implementará el código del lado del servidor para enviar un mensaje de tema de FCM.

Implementar la integración del lado del servidor para enviar mensajes de temas

  1. En el código del servidor, acceda a FcmSender.java y localice el método denominado sendMessageToFcmTopic .

56381dd1b40cde9c.png

  1. En la primera línea, proporcione el tema de FCM al que desea enviar el mensaje.
    • Es una cadena de la forma: /topics/<Topic Name> . Por ejemplo, /topics/Technology .
  2. En las siguientes líneas, cree un nuevo objeto message (similar al definido en la función sendMessageToFcmRegistrationToken ).
    • La diferencia será que en lugar de configurar el campo Token del objeto message , configurará el campo Topic .
Message message = Message.builder()
        .putData("FOOTECH", "$1000")
        .setNotification(
            Notification.builder()
                .setTitle("Investor confidence in Tech Stocks growing")
                .setBody("Foo Tech leading the way in stock growth for Tech sector.")
                .build())
        .setTopic(topicName)
        .build();
  1. Ahora agregue la llamada a la instancia FirebaseMessaging para enviar el mensaje (idéntica a la llamada de envío realizada en la función sendMessageToFcmRegistrationToken ).
FirebaseMessaging.getInstance().send(message);
  1. Finalmente, actualice la función main y habilite la llamada solo a la función sendMessageToFcmTopic .

9a6aa08dd7c28898.png

Enviar mensaje y validar recibo

  1. Antes de enviar el mensaje del tema, primero asegúrese de que la instancia de su aplicación esté suscrita al tema al que desea enviarlo.
    1. Esto se puede hacer con un giro de la palanca correspondiente. Por ejemplo:
    4668247408377712.png
  2. Ahora puede enviar su mensaje de tema ejecutando la función main de FcmSender.java .
  3. Al igual que antes, debería poder observar la recepción del mensaje en la instancia de la aplicación.
    1. Instancia de aplicación en primer plano
    c144721399f610fe.png
    1. Instancia de la aplicación en segundo plano
    44efc7dfd57e8e9a.png
  4. Bonificación: intente cancelar la suscripción al tema que envió y vuelva a enviar el mensaje. Observará que el mensaje no se envía a la instancia de la aplicación.

8. Envío de su primer mensaje de condición de tema

La función de condición de tema le permite enviar mensajes a una combinación de temas, lo que le permite brindar una definición de audiencia más expresiva.

Por ejemplo, en nuestra aplicación StockNews, considere la posibilidad de enviar mensajes a un grupo de instancias de la aplicación que están suscritas a temas de Tecnología o Automoción. Tal caso puede ocurrir, por ejemplo, si hay un evento digno de mención que involucre a Waymo.

Temas le permite expresar su combinación en forma de una expresión booleana usando los siguientes operadores

  • && : AND lógico. Por ejemplo, 'Technology' in topics && 'Automotive' in topics : se orienta solo a las instancias de la aplicación que están suscritas tanto a Tecnología como a Temas de automoción.
  • || : OR lógico. Por ejemplo, 'Technology' in topics || 'Automotive' in topics : se dirige a instancias de aplicaciones que están suscritas a temas de tecnología o de automoción.
  • () : Paréntesis para agrupar. Por ejemplo, 'Technology' in topics && ('Automotive' in topics || 'Energy' in topics) : se orienta solo a instancias de aplicación que están suscritas a temas de Tecnología y Automoción o Energía.

Obtenga más información sobre cómo generar solicitudes de envío para usar esta funcionalidad.

Implementar la integración del lado del servidor para enviar el mensaje de condición del tema

  1. De vuelta en el código del servidor, acceda a FcmSender.java y localice el método llamado sendMessageToFcmTopicCondition .

3719a86c274522cf.png

  1. En la primera línea, para la variable topicCondition , proporcione la condición del tema a la que desea enviar el mensaje. Puede establecerlo en: 'Technology' in topics && 'Automotive' in topics .
  2. En las siguientes líneas, cree un nuevo objeto message (similar al definido en la función sendMessageToFcmTopic ).
    1. La diferencia será que en lugar de configurar el campo Topic del objeto, configurará el campo Condition .
    Message message = Message.builder()
        .putData("FOOCAR", "$500")
        .setNotification(
            Notification.builder()
                .setTitle("Foo Car shows strong Q2 results")
                .setBody("Foo Car crosses 1B miles. Stocks rally.")
                .build())
        .setCondition(topicCondition)
        .build();
  1. Ahora agregue la llamada a la instancia FirebaseMessaging para enviar el mensaje (idéntica a la llamada de envío realizada en la función sendMessageToFcmTopic ).
FirebaseMessaging.getInstance().send(message);
  1. Finalmente, actualice la función main y habilite la llamada solo a la función sendMessageToFcmTopicCondition .

db9588d40d2a0da6.png

Envía el mensaje y valida la recepción

  1. Antes de enviar el mensaje del tema, primero asegúrese de que la instancia de su aplicación cumpla con la condición del tema especificado al suscribir la instancia de la aplicación a los temas de Tecnología y Automoción.
  2. Ahora puede enviar su mensaje de tema ejecutando la función main de FcmSender.java .
  3. Como antes, debería poder observar la recepción del mensaje en la instancia de la aplicación.
    1. Instancia de aplicación en primer plano
    6f612ace15aa6515.png
    1. Instancia de la aplicación en segundo plano
    78044a56ac2359cb.png
  4. Bonificación: ahora puede darse de baja del tema Tecnología y volver a enviar el mensaje de condición del tema. Debe observar que la instancia de la aplicación no recibe el mensaje.

9. Resumen

Hagamos un resumen rápido de lo que has aprendido hasta este punto.

  • Cómo iniciar una suscripción/cancelación de suscripción a un tema desde una instancia de aplicación.
  • Enviar un mensaje al tema y verificar el recibo en instancias de aplicaciones suscritas.
  • Envío de un mensaje a una condición de tema y verificación de la recepción en una instancia de la aplicación que cumple la condición.

En la siguiente sección, aprenderá cómo puede suscribirse o cancelar la suscripción de instancias de aplicaciones a temas sin necesidad de crear instancias de llamadas desde el lado del cliente.

c0dc20655d392690.gif

10. Administrar suscripciones a temas desde el lado del servidor

Hasta ahora, en este codelab, todas las llamadas de suscripciones y cancelaciones de temas se inician desde una instancia de la aplicación.

Sin embargo, en algunos casos de uso, es posible que desee administrar las suscripciones de temas desde el lado del servidor. Por ejemplo, es posible que desee suscribir un subgrupo de su base de usuarios existente a un tema nuevo sin esperar el lanzamiento de una aplicación.

En esta sección, aprenderá a usar el SDK de administración de Firebase para suscribirse y cancelar la suscripción de un lote de tokens de registro de FCM a un tema mediante llamadas desde el lado del servidor.

Implementar la suscripción del lado del servidor de los tokens de registro de FCM al tema de FCM

  1. En el código del servidor, vaya a la clase FcmSubscriptionManager.java . Busque el método llamado subscribeFcmRegistrationTokensToTopic . Implementará la llamada a la API subscribeToTopic aquí.

5d5709e7b3cbcb04.png

  1. Suscribamos la instancia de la aplicación al tema Energía. Para hacer eso, primero proporcione datos para los siguientes dos campos:
    1. registrationTokens : una lista separada por comas de cadenas que representan los tokens de registro de FCM para los que le gustaría crear suscripciones de temas.
    2. topicName : el nombre del tema para el tema Energía, es decir /topics/Energy .
  2. En próximas líneas implemente la llamada, siguiendo estas líneas:
TopicManagementResponse response = FirebaseMessaging.getInstance().subscribeToTopic(
        registrationTokens, topicName);
  1. Puede inspeccionar TopicManagementResponse para obtener algunas estadísticas de resultados de alto nivel. Por ejemplo, imprimir el número de suscripciones a temas creadas con éxito mediante getSuccessCount .
System.out.printf("Num tokens successfully subscribed %d", response.getSuccessCount());
  1. Finalmente, en la función main , habilite las llamadas solo a la función subscribeFcmRegistrationTokensToTopic .

Crear suscripción y enviar mensaje de tema

  1. En este punto, está listo para crear la suscripción al tema y enviarle un mensaje.
  2. Ejecute la función main de la clase FcmSubscriptionManager.java . Esto creará una suscripción de tema.
  3. Ahora, configure el código para enviar el mensaje. Similar a antes,
    1. En FcmSender.java , busque la función sendMessageToFcmTopic .
    2. Establezca topicName en el tema Energía, es decir, /topics/Energy .
    3. Cree un objeto Message y apúntelo al tema mediante setTopic .
    4. Finalmente, actualice el método main para habilitar solo la función sendMessageToFcmTopic .
  4. Ejecute la función main de FcmSender.java . Esto enviará el mensaje a la instancia de su aplicación y podrá observarlo en su aplicación de la siguiente manera.
    1. Instancia de aplicación en primer plano
    40ab6cf71e0e4116.png
    1. Instancia de la aplicación en segundo plano
    8fba81037198209e.png

Implementar la cancelación de la suscripción del lado del servidor de los tokens de registro de FCM al tema de FCM

  1. Para cancelar la suscripción a temas del lado del servidor, use esta API unsubscribeFromTopic . Agregará el código relevante para unsubscribeFcmRegistrationTokensFromTopic de la función FcmRegistrationTokensFromTopic de la clase FcmSubscriptionManager.java .

8d9e8ea9d34016bd.png

  1. La implementación del código de cancelación de suscripción del lado del servidor y la validación de su efecto mediante el envío de un mensaje de tema se deja como un ejercicio para usted.

11. Felicitaciones

Enhorabuena, ha utilizado con éxito los temas de FCM para enviar mensajes de multidifusión a subgrupos de las instancias de su aplicación. Esto ayudará a simplificar su capacidad para llegar oportunamente a sus usuarios con contenido relevante.

947def3eb33b1e4a.gif

¿Que sigue?

Ahora que ha completado su laboratorio de código, considere probar temas para otras plataformas utilizando las siguientes guías:

Documentos de referencia