74 Firebase 7 - Apuntes 8 PDF

Title 74 Firebase 7 - Apuntes 8
Course ingeniería de aplicaciones móviles
Institution Universidad de Las Palmas de Gran Canaria
Pages 7
File Size 313.9 KB
File Type PDF
Total Downloads 39
Total Views 156

Summary

Apuntes android...


Description

Notificaciones Push en Android: Firebase Cloud Messaging (1) Firebase Cloud Messaging (FCM) es sin duda otro de los servicios estrella que nos ofrece la plataforma Firebase. Es posible que hayáis oído hablar de este servicio con otros nombres, como mensajería en la nube o mensajería push, pero todos se refieren a lo mismo. Incluso puede que os suene el servicio Google Cloud Messaging (GCM), que no es más que la “versión anterior” de este servicio de mensajería de Google, recientemente trasladado a la plataforma Firebase. Firebase Cloud Messaging permite el envío de mensajes entre un servidor de aplicaciones en la nube y un dispositivo Android (en nuestro caso particular , aunque también podría ser iOS o Web). Aunque en la actualidad también soporta el envío de mensajes en sentido ascendente (desde el dispositivo hacia el servidor), son los mensajes descendentes, de servidor a cliente, los que más nos van a interesar. Estos mensajes nos van a permitir implementar funcionalidades de todo tipo, por ejemplo el envío de notificaciones de usuario a un dispositivo o grupo de dispositivos, o el envío de notificaciones internas (no visibles para el usuario) para “avisar” a nuestra aplicación de que tiene nueva información disponible para descargar. Por ejemplo esto último es muy interesante para evitar que nuestras aplicaciones deban estar constantemente accediendo a la red para comprobar si hay nueva información disponible y así reducir enormemente el gasto de energía. Durante los próximos temas iremos descubriendo poco a poco las distintas posibilidades que nos ofrece Firebase Cloud Messaging. En éste, veremos los primeros pasos a seguir, la creación de un proyecto muy sencillo en Android Studio, y enviaremos nuestro primer mensaje. Al igual que ocurría con muchos de los servicios de Google Play Services o con la base de datos de Firebase que ya conocemos, antes de ponernos a trabajar en nuestro proyecto de Android Studio tendremos dirigirnos a la consola de desarrolladores, en esta ocasión la Consola de Firebase, para crear y configurar el nuevo proyecto y asociar a él nuestra aplicación de la forma que ya conocemos.

Finalizados todos los preparativos en la consola de Firebase, podemos disponernos ya a crear nuestro proyecto en Android Studio. Crearemos un proyecto estándar, utilizando la plantilla Empty Activity. Creado el proyecto lo primero que vamos a hacer es colocar el fichero de configuración “google-services.json” que hemos descargado antes en su ubicación correcta. Debemos copiarlo a la carpeta “/app” situada dentro de la carpeta de nuestro proyecto. El siguiente paso será añadir todas las dependencias necesarias a nuestros ficheros build.gradle. Tendremos que modificar tanto el fichero build.gradle situado a nivel de proyecto, como el de nuestro módulo principal. Empezaremos por el build.gradle de proyecto. Aquí tendremos que añadir a la sección de dependencias la referencia al plugin de Google Play Services para Gradle. dependencies { //... classpath 'com.google.gms:google-services:3.0.0' } Por su parte, en el build.gradle del módulo principal, tendremos por un lado que aplicar dicho plugin al final del fichero, y por otro añadir la referencia a los servicios de Firebase que vayamos a utilizar. En nuestro caso utilizaremos la funcionalidad de mensajería en la nube o Firebase Cloud Messaging (FCM), por lo que añadiremos tan solo su librería correspondiente (puedes consultar el listado completo de librerías disponibles en la documentación oficial).

Después de modificar cada fichero de Gradle recordad que es necesario sincronizar los cambios con el proyecto. Para ello, podemos utilizar la opción “Sync Now” que aparece en la zona superior derecha del editor cuando modificamos cualquier fichero de configuración de Gradle. Y listo, ya está todo, hemos terminado. Lo sorprendente del asunto es que sólo con lo que acabamos de hacer, y sin escribir aún ni una sola línea de código, ya seríamos capaces de enviar notificaciones sencillas a nuestra aplicación. Veamos cómo hacerlo. Para el envío de mensajes debemos normalmente construir una aplicación web que corra sobre un servidor de aplicaciones independiente al de la mensajería, y que contenga la lógica necesaria para dicha tarea. De hecho será lo normal (más adelante lo veremos), pero Firebase también nos ofrece en su propia consola una utilidad que nos permite el envío de mensajes sin necesidad de implementar ninguna aplicación adicional. Podemos acceder a dicha utilidad entrando en la consola y pulsando la opción de “Notifications” del menú lateral.

Si es la primera vez que accedemos a esta opción, nos aparecerá una breve descripción de la utilidad de esta herramienta y un botón para comenzar a configurar y enviar notificaciones.

Si pulsamos el botón de “ENVIA TU PRIMER MENSAJE” accederemos al formulario de envío, donde se nos solicitarán una serie de datos. En primer lugar introduciremos el texto de la notificación y un identificador interno que nos podrá servir posteriormente para diferencias los distintos mensajes que enviemos. También podremos elegir entre enviar el mensaje inmediatamente o programarlo para algún otro momento.

La siguiente opción que podremos elegir será a quién enviar el mensaje, pudiendo seleccionar entre enviarlo a un usuario determinado, a un tema, o a un segmento de usuarios. Por ahora, dado que aún no sabemos lo que es un tema ni sabemos identificar dispositivos concretos, dejaremos seleccionada la opción de “Segmento de usuarios”, más adelante hablaremos de las otras dos opciones. Y dado que hemos seleccionado la opción de segmento, tendremos

que indicar qué condiciones deberán cumplirse para determinar los usuarios que deben recibir el mensaje. Para este primer ejemplo no nos complicaremos y seleccionaremos todos los usuarios cuya aplicación se corresponda con nuestra aplicación.

El resto de opciones del formulario nos permiten dar un título a la notificación, añadir datos personalizados al mensaje, cambiar la prioridad, habilitar el sonido, o asignarle una fecha de caducidad, pero por ahora las dejaremos con sus valores por defecto.

Pues bien, configurado el mensaje ya solo nos quedaría pulsar “ENVIAR MENSAJE”, pero antes debemos tener instalada nuestra aplicación. Ejecutaremos la aplicación desde Android Studio y, esto es importante, NO debemos dejarla ejecutándose en primer plano. Para ello podemos pulsar el botón Atrás o Home del dispositivo para que simplemente no aparezca en pantalla. Más adelante explicaremos por qué es esto necesario (por el momento). Ahora sí podemos enviar el mensaje pulsando el botón “ENVIAR MENSAJE”, y tras una pantalla de confirmación/revisión del mensaje éste se enviará a todos los dispositivos con nuestra aplicación instalada. Si todo ha ido bien, debería llegar casi de inmediato a nuestro dispositivo la notificación enviada:

Si desplegamos la bandeja del sistema podremos ver el mensaje que hemos configurado (como título de la notificación aparece por defecto el nombre de la aplicación, en mi caso “Firebase CM“):

Finalmente, si pulsamos sobre la notificación, el comportamiento por defecto del sistema será abrir nuestra aplicación de forma que aparezca en primer plano.

¿No os parece fantástico todo esto teniendo en cuenta que aún no hemos escrito nada de código? Sin duda lo es, pero tampoco debemos engañarnos, hemos encontrado varias limitaciones por el camino, entre las más destacables:  No hemos podido enviar mensajes a usuarios concretos. Ya sabemos que la opción existe en la consola, pero ¿como identificamos a cada usuario?  Si la aplicación Android hubiera estado en primer plano en el momento de enviar el mensaje la notificación no habría aparecido en la barra de estado ni en la bandeja del sistema.  Si hubiéramos añadido datos personalizados al mensaje éstos no habrían aparecido por ningún sitio, tan sólo veríamos el título y el texto de la notificación.  Para el envío de mensajes hemos utilizado la consola de Firebase, que aunque útil y práctica, no deja de ser una utilidad independiente y de terceros no integrada con nuestro sistema. En los próximos temas iremos viendo poco a poco cómo resolver todos estos problemas o limitaciones....


Similar Free PDFs