El próximo billón de personas que conozcan internet lo harán mediante un smartphone. De ahí, la inquietud de Google por disponibilizar herramientas que nos faciliten el desarrollo y crecimiento de nuestras aplicaciones.
Firebase es un Backend as a Service; quiere decir que ya no tenemos que crear nuestra propia infraestructura ni desarrollar nuestro propio backend. Además es totalmente compatible con Android, iOS y Web: solo te enfocas en desarrollar tu aplicación y acceder a todas esas funcionalidades por medio del SDK de Firebase.
Si eres desarrollador de aplicaciones móviles, notarás que esta es una increíble ventaja, ya que podrás crear prototipos rápidos o llevar tu aplicación al Store sin preocuparte por algo más, sobre todo si Java y Swift son los únicos lenguajes que conoces.
Platzi cuenta con un Curso completo de Firebase para Android.
Entre todo lo disponible en Firebase se encuentra:
Para conocer más sobre lo que ofrece Firebase (así como planes y documentación) visita ‘https://firebase.google.com/features/’.
Vamos a nuestro ejemplo, queremos implementar notificaciones push en nuestra aplicación Android. Iniciamos configurando nuestro entorno de trabajo.
Android Studio y SDK tools:
Necesitamos tener instalada la support Library y Play Services en su versión 30.0.0. Esto es muy fácil de hacer mediante el SDK manager:
Creando el proyecto
Creamos un nuevo proyecto en Android Studio, no importa el nombre de la aplicación pero sí recordaremos el nombre del paquete (lo necesitaremos más adelante).
El nivel mínimo de SDK que te recomiendo es el API 15: Android 4.0.3, sin embargo, es compatible desde Android 2.2. Solo necesitamos iniciar con un Empty Activity.
Creando nuestra SHA1-Key
Para autenticar nuestra aplicación con Firebase, necesitamos crear nuestra clave SHA1, y dependiendo de tu sistema de operativo, es el comando que debemos ejecutar en la terminal:
Nos pedirá una contraseña, por defecto es android:
Si todo va bien, obtendremos como resultados las llaves que autentican nuestra aplicación. La que necesitamos es precisamente la que está en SHA1, y que, por motivos de seguridad, jamás debes compartir.
Si tienes alguna duda, te dejo la documentación donde explica como generar estas llaves: https://developers.google.com/android/guides/client-auth
Configurando nuestro proyecto en Firebase
Para darnos de alta en Firebase, solo necesitamos ingresar a https://firebase.google.com/ y autenticarnos con nuestra cuenta de Gmail en donde dice: “Get Started for free”. No te preocupes, no necesitamos ingresar ninguna información bancaria o tarjeta de crédito.
Creamos un nuevo proyecto. El nombre puede ser lo que quiera, pero la región no debe diferir de donde estás, ya que esto permite reducir la latencia de los servicios que consultamos.
Obteniendo nuestrogoogle-services.json
En la siguiente pantalla, podemos obtener el archivo necesario de configuración que necesitamos en nuestra aplicación. Al seleccionar añadir Firebase a nuestra aplicación en Android nos pedirá los 2 datos que obtuvimos anteriormente: El nombre del paquete y nuestro llave SHA1.
Con ello, podemos descargar nuestro archivo google-services.json, además de ver las dependencias que necesitamos:
Por ahora no te preocupes de esto, en un momento agregamos estos elementos a nuestro proyecto en Android Studio.
Agregando nuestras dependencias
Regresamos a nuestro proyecto de Android Studio. Para entender mejor en donde va cada archivo o modificación, cambiamos de la vista normal “android” a la vista de “proyecto”:
Agregamos el siguiente classpath en el archivo build.gradle que se encuentra en la raíz del proyecto: classpath ‘com.google.gms:google-services:3.0.0’
Ahora, vamos a copiar nuestro archivo google-services.json en la raíz de nuestra aplicación:
También vamos a agregar en ese build.gradle las siguientes dependencias tal como se muestra en la imagen de abajo:
compile ‘com.google.firebase:firebase-core:9.0.0’ compile ‘com.google.firebase:firebase-messaging:9.0.0’ apply plugin: ‘com.google.gms.google-services’
Ejecutamos nuestro proyecto para comprobar que las configuraciones estén bien:
Recibiendo notificaciones
Ahora, vamos a crear una nueva clase MyFirebaseMessagingService, que hereda de FirebaseMessagingService. Ya solo necesitamos sobreescribir el método onMessageReceived para empezar a recibir notificaciones.
Para obtener el cuerpo del mensaje, llamamos al método getBody() de getNotification() y que es parte del remoteMessage que recibimos como parámetro. Log.e sirve para mostrar ese mensaje en la consola.
public classMyFirebaseMessagingServiceextendsFirebaseMessagingService{
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
Log.e("FIREBASE", remoteMessage.getNotification().getBody());
}
}
Lo último es configurar ese nuestro servicio en nuestro archivo manifest.xml, debajo de la etiqueta . La estructura es muy sencilla:
<serviceandroid:name=".MyFirebaseMessagingService"><intent-filter><actionandroid:name="com.google.firebase.MESSAGING_EVENT"></action></intent-filter></service>
Donde en android:name=".MyFirebaseMessagingService ponemos el nombre de nuestra clase anteriormente creada.
Enviando mensaje desde Firebase
Regresando a la consola de Firebase, notarás que en la parte inferior izquierda existe un apartado de notificaciones:
Creamos un nuevo mensaje:
Puedes ser tan creativo como necesites, mandar la notificación al instante o programarla para cierta hora, inclusive, entre más aplicaciones se instalen, más data de usuarios tenemos a disposición y así podemos fragmentar las notificaciones por idioma, género, tipo de OS, etc.
Enviamos el mensaje y en unos instantes aparecerá en tu dispositivo:
Y listo, tenemos con éxito notificaciones push en nuestra aplicación. Por último, el repositorio de este tutorial lo encuentras en el siguiente enlace: https://github.com/thespianartist/firebase-notification Si eres desarrollador en iOS, sería muy cool que nos compartieras el mismo ejemplo bajo esa plataforma.
Firebase está enfocado a mejorar la funcionalidad en aplicaciones móviles. Este solo fue un pequeño ejemplo de su potencial. Cuéntanos qué otra parte de la plataforma te interesa - ¡quizá podamos tener un curso completo! Mientras tanto, te recomiendo seguir aprendiendo en el Curso de Android.
que curso es?
Hola,
Donde veo a que numeros se esta enviando los SMS?.
Saludos,