Notificaciones Push con Apache Cordova y FCM (Actualizado 2021)
En el siguiente articulo aprenderás a configurar un proyecto en Firebase Console para enviar notificaciones PUSH a dispositivos Android, La aplicación será construida usando Apache Cordova.
Configurar proyecto en Firebase Console
Nos dirigimos a Firebase console y creamos un nuevo proyecto;
Nuestro proyecto se llamará Notificaciones push cordova
:
Presionamos en continuar y nos pedirá integrar el proyecto con Google Analytics, en este caso no lo habilitaremos, presionamos en Crear proyecto
Una vez terminado el proceso el proyecto estará creado, presionamos en continuar
En el panel de administracion seleccionamos la opción Configuración del proyecto
Nos vamos al pestaña General
al final encontraremos la opcion para crear la configuración para la aplicacion, en este caso seleccionamos la opcion Android:
En el formulario que nos presenta llenaremos el campo Nombre del paquete de android
, los demas campos son opcionales, Mas adelante crearemos el proyecto con el nombre de paquete igual a com.notificacionespushcordova.app
Presionamos Registrar app
Debemos descargar el archivo google-services.json que no da:
ok, guarda el archivo google-services.json
que mas adelante lo debemos poner en la raiz del proyecto.
Creamos la aplicación e instalamos todo lo necesario
Ejecutamos los siguientes comandos:
Como puedes notar en este caso utilizamos un plugin diferente, el plugin que utilzaremos para las notificaciones push es: cordova-plugin-firebasex
Tambien notarás que si haces correr la aplicación te lanzará el siguiente error:
This project uses AndroidX dependencies, but the ‘android.useAndroidX’ property is not enabled. Set this property to true in the gradle.properties file and retry.
Para solucionar este error debemos habilitar AndroidX, tenemos que modificar el archivo config.xml y debemos adicionar la linea:
Quedando el archivo asi:
Si volvemos a ejecutar la aplicación, se ejecutara sin problemas:
Perfecto, ahora un poco de código. En el archivo index.js vamos a cambiar el contenido original por:
Las funciones de getToken, onTokenRefresh, onMessageReceived son proporcionadas por el plugin cordova-plugin-firebasex, puedes encontrar mas información acerca de estas y otras funciones en cordova-plugin-firebasex. En el archivo index.html vamos a insertar un textarea con un id llamado miToken, quedando asi:
El textarea nos servirá para visualizar el token de nuestro dispositivo. Si compilamos la aplicación veremos lo siguiente:
No olvides poner el archivo google-services.json en la raiz de nuestro proyecto para que funcione sin problemas
Ok, entonces hasta este punto ya tenemos todo integrado y la aplicación ya genera un token para que podamos realizar las pruebas. Copia el token generado en el textarea.
Pruebas
Para la prueba rápida volvemos a la consola de firebase y buscamos la seccion de Cloud messaging y presionamos el boton de Send your first message
En el formulario que nos aparece debemos llenar los campos: Titulo de la notificación y Texto de la notificación como campos requeridos. Luego presionamos en “Enviar mensaje de prueba” y nos pedirá un token, ese token es el token que copiamos de el textarea con anterioridad, lo pegamos, adicionamos y presionamos en el boton “Probar”
Funciona !!! Nos llegará la notificación a nuestro dispositivo sin problemas, puede ser que en la primera prueba la notificacion tarde unos minutos en llegar pero luego será con total normalidad.
La notificación push llegará tanto si estamos con la aplicación abierta o cerrada.