Notificaciones Push en una App Flutter con Firebase Cloud Messaging

Go to Homepage

Introducción a las notificaciones Push en Flutter con Firebase Cloud Messaging

En este artículo, vamos a explorar la integración de las notificaciones push en una app Flutter utilizando Firebase Cloud Messaging. Firebase Cloud Messaging es una plataforma de notificaciones que permite enviar mensajes en tiempo real a dispositivos Android e iOS.

Como desarrolladores de apps, sabemos lo importante que es mantener a nuestros usuarios informados y comprometidos. Las notificaciones push son una excelente manera de lograr esto, ya que permiten enviar mensajes directamente a los dispositivos de los usuarios, incluso cuando la app no está en uso.

La integración de Firebase Cloud Messaging en una app Flutter es bastante sencilla. Primero, necesitaremos configurar Firebase en nuestra app. Esto implica crear un proyecto en la consola de Firebase y agregar el archivo de configuración a nuestra app Flutter. Una vez que hayamos configurado Firebase, podremos utilizar Firebase Cloud Messaging para enviar y recibir notificaciones push.

La configuración de Firebase Cloud Messaging en una app Flutter implica el uso de paquetes de Firebase específicos para Flutter. Estos paquetes nos proporcionan una fácil integración con Firebase Cloud Messaging. Podemos agregar estos paquetes a nuestro archivo pubspec.yaml y luego importar las bibliotecas necesarias en nuestro código.

Una vez que hemos configurado Firebase Cloud Messaging, podemos comenzar a enviar notificaciones push a dispositivos Android. Para hacer esto, podemos utilizar el token de registro de Firebase que se genera para cada dispositivo. Podemos enviar los mensajes a través de la consola de Firebase o mediante el uso de la API de Firebase Cloud Messaging. También podemos personalizar el contenido y la apariencia de las notificaciones push utilizando el sistema de categorías y los datos personalizados.

Enviar notificaciones push a dispositivos iOS con Firebase Cloud Messaging también es bastante sencillo. Al igual que con los dispositivos Android, primero necesitamos el token de registro de Firebase para cada dispositivo iOS. Luego, podemos enviar los mensajes utilizando la consola de Firebase o la API de Firebase Cloud Messaging.

Personalizar el contenido y la apariencia de las notificaciones push es una excelente manera de mejorar la experiencia de usuario en nuestra app Flutter. Podemos utilizar el sistema de categorías de Firebase Cloud Messaging para clasificar las notificaciones y mostrar diferentes tipos de contenido según las preferencias del usuario. También podemos utilizar datos personalizados para mostrar información relevante en nuestras notificaciones push.

Las notificaciones push son una herramienta vital en el desarrollo de apps Flutter. Con Firebase Cloud Messaging, podemos enviar y recibir mensajes en tiempo real a dispositivos Android e iOS. La integración de Firebase Cloud Messaging en una app Flutter es sencilla y se puede personalizar para adaptarse a las necesidades de nuestra app y experiencia de usuario. Utilizando las capacidades de personalización de Firebase Cloud Messaging, podemos garantizar que nuestros usuarios reciban notificaciones push relevantes y atractivas.

Cómo configurar Firebase Cloud Messaging en una app Flutter

Una de las funcionalidades más importantes en el desarrollo de aplicaciones móviles es la capacidad de enviar notificaciones push a los usuarios. Estas notificaciones permiten enviar mensajes en tiempo real a los dispositivos de los usuarios, lo cual es fundamental para mejorar la experiencia de usuario y mantenerlos enganchados con la app.

En el caso de Flutter, una plataforma de desarrollo de apps multiplataforma, Firebase Cloud Messaging es una solución ideal para implementar notificaciones push en nuestras aplicaciones. Firebase Cloud Messaging (FCM) es una plataforma de notificaciones en la nube que facilita la integración de mensajes push en nuestras aplicaciones Flutter, tanto para dispositivos Android como para dispositivos iOS.

La integración de Firebase Cloud Messaging en una app Flutter requiere de varios pasos, pero afortunadamente es un proceso relativamente sencillo. A continuación, explicaremos los pasos necesarios para configurar Firebase Cloud Messaging en una app Flutter:

1. Crear un proyecto en Firebase

Lo primero que debemos hacer es crear un proyecto en Firebase. Para ello, vamos al sitio web de Firebase y creamos un nuevo proyecto. Luego, configuramos las opciones necesarias para nuestra app Flutter, como el nombre del proyecto y el país/región.

2. Agregar Firebase a la app Flutter

Una vez que hemos creado el proyecto en Firebase, debemos agregar Firebase a nuestra app Flutter. Para ello, debemos seguir los siguientes pasos:

  • Abrir el archivo pubspec.yaml en el directorio raíz del proyecto y agregar la dependencia de Firebase en la sección de dependencies:
dependencies:
    # Otros paquetes de Flutter
    firebase_core: ^1.10.0
    firebase_messaging: ^11.2.0
  • Ejecutar el comando flutter pub get en la terminal para descargar las dependencias.

3. Configurar la plataforma de notificaciones

Una vez que hemos agregado Firebase a nuestra app Flutter, debemos configurar la plataforma de notificaciones. Para ello, debemos seguir los siguientes pasos:

  • Para Android: Debemos configurar el archivo android/app/src/main/AndroidManifest.xml. Agregamos los siguientes elementos dentro del elemento <application>:
<meta-data
    android:name="com.google.firebase.messaging.default_notification_channel_id"
    android:value="@string/default_notification_channel_id" />
<meta-data
    android:name="com.google.firebase.messaging.default_notification_icon"
    android:resource="@drawable/ic_stat_notification" />

Además, debemos crear un archivo res/values/strings.xml y agregar la siguiente línea de código:

<resources>
    <string name="default_notification_channel_id" translatable="false">YOUR_NOTIFICATION_CHANNEL_ID</string>
</resources>
  • Para iOS: Debemos configurar el archivo ios/Runner/AppDelegate.swift. Agregamos el siguiente código en la función didFinishLaunchingWithOptions:
FirebaseApp.configure()

Además, abrimos el archivo ios/Runner/Info.plist y agregamos las siguientes líneas:

<key>FirebaseAppDelegateProxyEnabled</key>
<false/>

4. Solicitar permiso para recibir notificaciones

En Flutter, debemos solicitar permiso al usuario para recibir notificaciones push. Para ello, debemos seguir los siguientes pasos:

  • Agregar el siguiente código en cualquier lugar de nuestra app donde queramos solicitar el permiso, como en el método initState() de una pantalla principal:
FirebaseMessaging.instance.requestPermission();
  • Asegurarnos de que el método initState() se llama cuando se inicia la app.

5. Enviar y recibir notificaciones

Una vez que hemos configurado Firebase Cloud Messaging en nuestra app Flutter, podemos enviar y recibir notificaciones push. Para poder enviar las notificaciones, debemos obtener el token de registro del dispositivo. Podemos obtener el token de registro mediante el siguiente código:

String? token = await FirebaseMessaging.instance.getToken();

Luego, podemos utilizar este token para enviar notificaciones push a dispositivos específicos.

Para recibir notificaciones, debemos implementar un FirebaseMessaging.onMessage en nuestra app Flutter. Este evento se dispara cuando se recibe una notificación push mientras la app está en primer plano. Podemos utilizar el siguiente código para recibir las notificaciones:

FirebaseMessaging.onMessage.listen((RemoteMessage message) {
    RemoteNotification? notification = message.notification;
    AndroidNotification? android = message.notification?.android;
    if (notification != null && android != null) {
    // Mostrar la notificación en la app
    }
});

Además de FirebaseMessaging.onMessage, también podemos implementar FirebaseMessaging.onBackgroundMessage y FirebaseMessaging.onMessageOpenedApp para manejar las notificaciones push cuando la app está en segundo plano o se abre desde la notificación.

Configurar Firebase Cloud Messaging en una app Flutter es un proceso relativamente sencillo que nos permite habilitar la funcionalidad de notificaciones push en nuestras aplicaciones. Siguiendo los pasos mencionados anteriormente, podemos integrar Firebase Cloud Messaging en nuestra app Flutter y enviar y recibir notificaciones push tanto en dispositivos Android como en dispositivos iOS. Con Firebase Cloud Messaging, podemos mejorar la experiencia de usuario y mantener a los usuarios conectados e informados sobre las novedades de nuestra app. ¡Inténtalo en tu próxima app Flutter!

Enviar notificaciones Push a dispositivos Android con Firebase Cloud Messaging

Una de las funcionalidades más importantes en el desarrollo de apps es la capacidad de enviar notificaciones push a los dispositivos de los usuarios. Las notificaciones push permiten a las aplicaciones enviar mensajes en tiempo real a los usuarios, incluso cuando la aplicación no está activa. Esto es especialmente útil para mantener a los usuarios actualizados con información relevante o para enviarles recordatorios importantes.

En el caso de una app Flutter, una plataforma de desarrollo de apps multiplataforma, una excelente opción para habilitar las notificaciones push es utilizando Firebase Cloud Messaging (FCM). FCM es una plataforma de notificaciones en la nube que facilita el envío de notificaciones push a dispositivos Android, iOS y web.

La integración de Firebase Cloud Messaging en una app Flutter es un proceso sencillo. A continuación, se muestra cómo configurarlo y cómo enviar notificaciones push a dispositivos Android.

Configuración de Firebase Cloud Messaging en una app Flutter

Para empezar, es necesario configurar la integración de Firebase Cloud Messaging en tu app Flutter. Sigue estos pasos:

  1. Crea un proyecto en Firebase y habilita la funcionalidad de Cloud Messaging.
  2. Agrega el archivo de configuración de Firebase a tu proyecto Flutter.
  3. Instala el paquete firebase_messaging en tu proyecto Flutter.

Una vez que hayas realizado estos pasos, tu app Flutter estará lista para enviar y recibir notificaciones push a dispositivos Android.

Enviar notificaciones Push a dispositivos Android

Ahora que Firebase Cloud Messaging está configurado en tu app Flutter, puedes enviar notificaciones push a dispositivos Android.

El proceso de enviar notificaciones push a dispositivos Android consiste en dos partes: el lado del servidor y el lado del cliente.

Lado del servidor

En el lado del servidor, necesitarás un servidor o una aplicación que se comunique con Firebase Cloud Messaging para enviar las notificaciones push. Esto se puede lograr utilizando cualquier lenguaje de programación o plataforma de tu elección.

Para enviar una notificación push a un dispositivo Android, debes enviar una solicitud HTTP al servidor de FCM con los detalles de la notificación, como el título, el cuerpo y el token del dispositivo. A continuación, se muestra un ejemplo de cómo enviar una notificación push a un solo dispositivo Android utilizando Node.js:

const axios = require("axios");

const sendPushNotification = async (deviceToken, title, body) => {
    const notification = {
        title,
        body,
        token: deviceToken,
    };

    const response = await axios.post(
        "https://fcm.googleapis.com/fcm/send",
        notification
    );

    if (response.status === 200) {
        console.log("Notificación enviada con éxito");
    } else {
        console.log("Error al enviar la notificación");
    }
};

sendPushNotification("deviceToken", "¡Hola!", "Bienvenido a nuestra app");

Recuerda reemplazar 'deviceToken' con el token del dispositivo Android al que deseas enviar la notificación, y proporcionar un título y un cuerpo para la notificación.

Lado del cliente

En el lado del cliente, necesitarás configurar tu app Flutter para recibir notificaciones push y mostrarlas al usuario.

En primer lugar, debes solicitar el permiso del usuario para recibir notificaciones push utilizando el paquete firebase_messaging. A continuación, debes configurar un FirebaseMessaging en tu app para recibir las notificaciones y manejarlas según tus necesidades.

import 'package:firebase_messaging/firebase_messaging.dart';

final FirebaseMessaging _firebaseMessaging = FirebaseMessaging();

void setupFirebaseMessaging() {
  _firebaseMessaging.configure(
    onMessage: (Map<String, dynamic> message) async {
      print('Notificación push recibida en primer plano: $message');
      // Mostrar la notificación al usuario en la UI
    },
    onLaunch: (Map<String, dynamic> message) async {
      print('Notificación push recibida cuando la app está cerrada: $message');
      // Manejar la notificación al lanzar la app desde la notificación
    },
    onResume: (Map<String, dynamic> message) async {
      print('Notificación push recibida mientras la app está en segundo plano: $message');
      // Manejar la notificación al abrir la app desde la notificación
    },
  );
}

setupFirebaseMessaging();

Utilizando el código anterior, puedes recibir y manejar las notificaciones push en primer plano, en segundo plano y cuando la app está cerrada. Puedes personalizar el comportamiento de tu app según tus necesidades.

Con estos pasos, puedes enviar notificaciones push a dispositivos Android en tu app Flutter utilizando Firebase Cloud Messaging. Esto te permitirá mejorar la experiencia de usuario al mantener a tus usuarios actualizados y comprometidos con tu aplicación.

Utilizar Firebase Cloud Messaging para enviar notificaciones push a dispositivos Android en una app Flutter es una forma eficiente de mejorar la experiencia de usuario. Firebase Cloud Messaging ofrece una plataforma de notificaciones en la nube fácil de usar y permite enviar mensajes en tiempo real a los usuarios, incluso cuando la app no está activa. Al configurar Firebase Cloud Messaging en una app Flutter y seguir los pasos mencionados anteriormente, puedes enviar notificaciones push a dispositivos Android y mantener a tus usuarios actualizados con información relevante. Así, podrás crear una experiencia de usuario mejorada y aumentar la interacción con tu app Flutter.

Enviar notificaciones Push a dispositivos iOS con Firebase Cloud Messaging

Paso 1: Configurar la plataforma de notificaciones en Firebase

Antes de poder enviar notificaciones Push a dispositivos iOS, debes asegurarte de tener configurada correctamente la plataforma de notificaciones en Firebase. Sigue estos pasos:

  1. Abre Firebase Console y selecciona tu proyecto.
  2. Haz clic en la pestaña “Configuración del proyecto” en la esquina superior izquierda.
  3. Haz clic en la opción “Configuración del proyecto para iOS” y sigue las instrucciones para registrar tu app en Firebase y descargar el archivo GoogleService-Info.plist.
  4. Añade el archivo GoogleService-Info.plist a la raíz de tu proyecto Flutter.

Paso 2: Configurar la integración de Firebase en la app Flutter

Una vez que hayas configurado la plataforma de notificaciones en Firebase, es hora de configurar la integración de Firebase en tu app Flutter. Sigue estos pasos:

  1. Abre el archivo ios/Runner/AppDelegate.swift en tu proyecto Flutter.
  2. Agrega el siguiente código antes de la declaración de la clase AppDelegate:
import Firebase
  1. Dentro del método application(_:didFinishLaunchingWithOptions:), agrega la siguiente línea de código:
FirebaseApp.configure()

Paso 3: Solicitar el permiso del usuario

En iOS, es obligatorio solicitar el permiso del usuario antes de enviarle notificaciones Push. Para hacer esto, debes agregar código adicional a tu app Flutter. Sigue estos pasos:

  1. Abre el archivo ios/Runner/AppDelegate.swift en tu proyecto Flutter.
  2. Agrega el siguiente código al método application(_:didFinishLaunchingWithOptions:), justo después de la llamada FirebaseApp.configure():
if #available(iOS 10.0, *) {
    UNUserNotificationCenter.current().delegate = self as? UNUserNotificationCenterDelegate
}

// Para mostrar las notificaciones Push cuando la app está en primer plano
UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound, .badge]) { granted, error in
    guard granted else { return }
    DispatchQueue.main.async {
        application.registerForRemoteNotifications()
    }
}

Paso 4: Integrar Firebase Cloud Messaging en la app Flutter

Una vez que has configurado la plataforma de notificaciones y has solicitado el permiso del usuario, ahora es momento de integrar Firebase Cloud Messaging en tu app Flutter. Sigue estos pasos:

  1. Añade la dependencia de Firebase Messaging en tu archivo pubspec.yaml:
dependencies:
    firebase_messaging: ^X.X.X
  1. Ejecuta el comando flutter packages get en tu terminal para obtener la dependencia.

Paso 5: Configurar Firebase Cloud Messaging

Ahora, vamos a configurar Firebase Cloud Messaging en tu app Flutter para recibir notificaciones Push en dispositivos iOS. Sigue estos pasos:

  1. Abre el archivo ios/Runner/AppDelegate.swift en tu proyecto Flutter.
  2. Agrega el siguiente código al método application(_:didFinishLaunchingWithOptions:), justo después de la llamada FirebaseApp.configure():
Messaging.messaging().delegate = self as? MessagingDelegate
  1. Agrega el siguiente código al método application(_:didRegisterForRemoteNotificationsWithDeviceToken:):
Messaging.messaging().apnsToken = deviceToken
  1. Abre el archivo lib/main.dart en tu proyecto Flutter.
  2. Agrega el siguiente código al método main():
FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler);

Paso 6: Enviar notificaciones Push a dispositivos iOS

Ahora que has configurado Firebase Cloud Messaging en tu app Flutter, estás listo para enviar notificaciones Push a dispositivos iOS. Puedes hacer esto utilizando el token de registro de FCM que se genera cuando el usuario permite recibir notificaciones Push. Sigue estos pasos:

  1. Obtén el token de registro de FCM utilizando el siguiente código:
String? token = await FirebaseMessaging.instance.getToken();
  1. Utiliza el token obtenido para enviar notificaciones Push a dispositivos iOS.

¡Y eso es todo! Ahora has aprendido cómo enviar notificaciones Push a dispositivos iOS utilizando Firebase Cloud Messaging en tu app Flutter. Puedes utilizar este conocimiento para mejorar la experiencia de usuario en tus aplicaciones y mantener a tus usuarios siempre actualizados con mensajes en tiempo real.

Enviar notificaciones Push a dispositivos iOS con Firebase Cloud Messaging es una tarea importante en el desarrollo de apps Flutter. Siguiendo estos pasos de configuración e integración, podrás enviar mensajes personalizados a tus usuarios en dispositivos iOS, mejorando así su experiencia de usuario y manteniéndolos involucrados con tu app. No olvides seguir explorando las diversas funcionalidades y capacidades que Firebase Cloud Messaging ofrece para enriquecer aún más tus aplicaciones Flutter.

Personalizar el contenido y la apariencia de las notificaciones Push en una app Flutter

Para integrar Firebase Cloud Messaging en una app Flutter, primeramente debemos configurarlo como se explica en el artículo previo. Una vez configurado, podemos enviar notificaciones push a dispositivos Android y iOS. Sin embargo, es importante tener en cuenta que cada plataforma tiene diferentes formas de personalizar las notificaciones push.

En el caso de dispositivos Android, podemos personalizar el contenido y la apariencia de las notificaciones utilizando el objeto NotificationCompat.Builder. Con este objeto, podemos establecer diferentes propiedades como el título, el subtexto, el ícono y el color de fondo de la notificación. Además, podemos agregar acciones que se mostrarán cuando el usuario interactúe con la notificación.

Aquí tenemos un ejemplo de cómo personalizar una notificación push en una app Flutter para dispositivos Android:

import 'package:flutter_local_notifications/flutter_local_notifications.dart';

// Crear una instancia de FlutterLocalNotificationsPlugin
FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin =
    FlutterLocalNotificationsPlugin();

// Configurar el canal de notificación
const AndroidNotificationChannel channel = AndroidNotificationChannel(
  'channel_id',
  'channel_name',
  'channel_description',
);

// Configurar el canal de notificación en el FlutterLocalNotificationsPlugin
await flutterLocalNotificationsPlugin
    .resolvePlatformSpecificImplementation<
    AndroidFlutterLocalNotificationsPlugin>()
?.createNotificationChannel(channel);

// Construir la notificación personalizada
const AndroidNotificationDetails androidPlatformChannelSpecifics =
    AndroidNotificationDetails(
  'your_other_channel_id',
  'your_other_channel_name',
  'your_other_channel_description',
  importance: Importance.max,
  priority: Priority.high,
  styleInformation: BigTextStyleInformation(''),
);

// Mostrar la notificación personalizada
await flutterLocalNotificationsPlugin.show(
    0, 'Título de la notificación', 'Contenido de la notificación', platformChannelSpecifics,
    payload: 'item x');

En el caso de dispositivos iOS, podemos personalizar el contenido y la apariencia de las notificaciones utilizando el objeto UNMutableNotificationContent. Con este objeto, podemos establecer propiedades como el título, el cuerpo, el sonido y el badge de la notificación. Además, también podemos agregar categorías y acciones específicas que se mostrarán cuando el usuario interactúe con la notificación.

Aquí tenemos un ejemplo de cómo personalizar una notificación push en una app Flutter para dispositivos iOS:

import 'package:flutter_local_notifications/flutter_local_notifications.dart';

// Crear una instancia de FlutterLocalNotificationsPlugin
FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin =
    FlutterLocalNotificationsPlugin();

// Configurar el canal de notificación
const IOSNotificationDetails iOSPlatformChannelSpecifics =
    IOSNotificationDetails(
        presentAlert: true,
        presentBadge: true,
        presentSound: true,
        subtitle: 'App subtitle');

// Construir la notificación personalizada
const NotificationDetails platformChannelSpecifics =
    NotificationDetails(iOS: iOSPlatformChannelSpecifics);

// Mostrar la notificación personalizada
await flutterLocalNotificationsPlugin.show(
    0, 'Título de la notificación', 'Contenido de la notificación', platformChannelSpecifics,
    payload: 'item x');

Personalizar el contenido y la apariencia de las notificaciones push en una app Flutter es importante para brindar una experiencia de usuario excepcional. Mediante la integración de Firebase Cloud Messaging y el uso de las clases NotificationCompat.Builder y UNMutableNotificationContent, podemos modificar diversos aspectos de las notificaciones push, como el título, el cuerpo, el ícono y el color de fondo, entre otros. Además, podemos agregar acciones y categorías específicas para enriquecer la interacción del usuario con las notificaciones. Con esto, podremos ofrecer una experiencia de usuario personalizada y atractiva en nuestras aplicaciones Flutter.