Mensajes por temas en Flutter

La mensajería por temas de FCM se basa en el modelo de publicación y suscripción, y permite enviar un mensaje a varios dispositivos que hayan aceptado un tema específico. Redacta tantos mensajes por temas como sea necesario y FCM se encargará de enrutarlos y entregarlos de manera confiable a los dispositivos correctos.

Por ejemplo, los usuarios de una app de pronóstico local de mareas podrían aceptar un tema de “alertas de corrientes de marea” y recibir notificaciones de condiciones óptimas de pesca en agua salada en áreas específicas. Los usuarios de una app de deportes se pueden suscribir a actualizaciones automáticas para recibir los resultados de los partidos de sus equipos favoritos en vivo.

Estos son algunos puntos que debes tener en cuenta sobre los temas:

  • Los mensajes por temas son ideales para contenido como el clima o sobre otra información disponible de manera pública.

  • Los mensajes por temas están optimizados en términos de capacidad de procesamiento, no de latencia. Para enviar mensajes con rapidez y seguridad a dispositivos individuales o a un grupo pequeño de estos, orienta los mensajes por tokens de registro en lugar de temas.

  • En los casos de uso donde necesites enviar mensajes a varios dispositivos por usuario, considera enviar mensajes a grupos de dispositivos.

  • Los mensajes por temas admiten una cantidad ilimitada de suscripciones para cada tema. Sin embargo, FCM aplica límites en estas áreas:

    • No se puede suscribir una instancia de app a más de 2,000 temas.
    • Si usas la importación por lotes para suscribir las instancias de app, cada solicitud tiene un límite de 1,000 instancias.
    • La frecuencia de las suscripciones nuevas tiene un límite por proyecto. Si envías demasiadas solicitudes de suscripción en un período breve, los servidores de FCM enviarán una respuesta 429 RESOURCE_EXHAUSTED (“se superó la cuota”). Vuelve a intentarlo con una retirada exponencial.

Suscribe la app cliente a un tema

Las apps cliente se pueden suscribir a cualquier tema existente o pueden crear un tema nuevo. Cuando una app cliente se suscribe a un nombre de tema nuevo (uno que no existe aún para tu proyecto de Firebase), se crea un tema nuevo con ese nombre en FCM y cualquier cliente se puede suscribir a él posteriormente.

Para suscribirte a un tema, llama a subscribeToTopic() con el nombre del tema. Este método muestra un Future, que se resuelve cuando se realiza correctamente la suscripción:

await FirebaseMessaging.instance.subscribeToTopic("topic");

Para anular la suscripción, llama a unsubscribeFromTopic() con el nombre del tema.

Próximos pasos