Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Android SDK
Code

Iniciando con Firebase para Android

by
Difficulty:BeginnerLength:MediumLanguages:

Spanish (Español) translation by Emanuell Paredes (you can also view the original English article)

Las aplicaciones moviles necesitan un server back-end para realizar tareas como la autenticacion de usuarios y la sincronizacion de los datos del usuario atraves de multiples dispositivos. Crear un servidor de este tipo, sin embargo, requiere un conjunto de habilidades que muchos desarrolladores independientes carecen  Afortunadamente, hay varios back-end como plataforma de servicios, a menudo llamados BaaS, que es lo que usaremos hoy. Google Firebase es una de esas plataformas.

Firebase ofrece servicios esenciales como analisis, reporte de fallos, autenticacion de usuarios, y mensajería en la nube sin coste alguno. Es un servicio gratuito que incluye una base de datos NoSQL de tiempo real, hospedaje de archivos y hospedaje de sitios estaticos.

En este tutorial, te mostrare como agregar una autenticacion de usuario, y almacenar remotamente los datos de tu aplicación Android usando Firebase

Prerequisitos

Para seguir adelante, necesitara:

1. Usando Firebase Analytics

Firebases Analytics es uno de los mas populares soluciones de analisis de aplicaciones moviles disponibles hasta el dia de hoy Al utilizarlo, puede obtener una comprension preciosa de quienes son tus usuarios y como utilizan tu aplicación.

Paso 1. Configura Firebase Analytics

La ultima liberacione de Android Studio viene con soporte para Firebase Analytics. Esos significa que puedes agregar Firebase Analytics a tu proyecto sin tener que salirte de Android Studio.

Para iniciar la integracion de Firebase Analytics a tu proyecto, da click en Tools > Firebase. Se te visualizara la siguiente pantalla Asistente:

Firebase Assistant window

Das click en Analytics y en Log an Analyrics event

Ahora debes asociar tu proyecto de Android Studio con un proyecto de Firebase. Para hacer eso, das click en el boton Connect to Firebase.

En el dialogo que se muestra, debemos poder ver todos nuestros proyectos existentes de Firebase. Puedes escoger uno de ellos o eligir crear un nuevo proyecto. Por ahora, te sugiero que escojas la opcion Create new Firebase project, y  le das un nombre unico al proyecto.

Connect to Firebase dialog

Una vez que hayas presionado el boton Connect to Firebase que esta dentro del dialogo, Android Studio automáticamente construira todas los cambios en las configuraciones, como generar un archivo llamado google-services.json y subir una firma SHA1

Ahora puedes presionar el boton Add Analytics to your app para agregar el plugin Firebase y la dependencia Firebase Core a tu proyecto. Android Studio ahora mostrara los cambios exactos que fueron realizados en los archivos build.gradle.

buildgradle changes

Presione Accept Changes para compĺetar la configuración.

Paso 2. Generar Analytics Events

Despues de que hayas configurado Firebase Analytics para tu aplicación, no tienes que escribir codigo adicional si estas satisfecho con los eventos analiticos generados automaticamente, como cuando el usuario abre por primera vez tu aplicación, el uso por mas de 10 segundos, compras dentro de la aplicacion, o la desinstalacion de la aplicacion. Por lo tanto, puede ejecutar su aplicacion ahora, en un emulador o en un dispositivo real, y en las proximas 24 horas, podra ver registros analiticos en la consola de Firebase.

Si desea analizar los comportamientos de sus usuarios mas de cerca, puede generar eventos analiticos personalizados manualmente usando el metodo logEvent() de la clase FirebaseAnalytics El metodo espera dos parametros, una cadena que especifica el nombre del evento personalizado, y el Bundle que contiene los detalles acerca del evento en forma de pares clave-valor.

Por ejemplo, si desea generar un evento llamado my_custom_event cada ves que el usuario haga click en un boton especifico, deberá agregar el siguiente codigo en el manejador del evento click:

En su mayor parte, los eventos personalizados no se diferencian de los eventos recolectados automaticamente en la consola de Firebase.

Custom event in the console

Note que el nombre de los eventos distingues entre mayusculas y minusculas. Por lo tanto, es una buena idea definir todos los nombre de los eventos como cadenas constantes. Opcionalmente, puede definir nombres de eventos predefinidos que estaran disponibles en la clase FirebaseAnalytics.Event

2. Usando Firebase Auth

La autenticacion de usuario es un importante requerimiento para muchas aplicaciones Android el dia de hoy. Al poder autenticar de manera segura a sus usuarios, y por lo tanto, identificarlos de manera unica, puede ofrecerles una experiencia personalizada basado en sus intereses y preferencias. Tambien puede asegurarse de que no tienen problemas para acceder a sus datos privados mientras utiliza la aplicación entre varios dispositivos.

Firebase Auth le permite autenticar a sus usuarios utilizando una variedad de mecanismos de inicio de sesión. En este tutorial, te mostrare como permitir a tus usuarios acceder a tu aplicación usando su email y password.

Paso 1. Configura tu proyecto

Para poder utilizar Firebase Auth en tu proyecto de Android Studio, debes agregar la siguiente dependencia compile al archivo app del modulo build.gradle

Paso 2. Activar Autenticación Basada en Password.

Por defecto, Firebase no permite la autencicación del usuario. Por lo tanto, debe habilitar manualmente la autenticación basada en password en la consola de Firebase. Para ello, vaya a la sección Auth y pulse el botón Set up sign-in method Ahora verá una lista de todos los proveedores de inicio de sesión disponibles.

List of available providers

Seleccionamos Email/Password, lo activamos, y presionamos Save

Paso 3. Registro de Usuario

Con la autenticacion basada en password, los usuarios podran registrarse proporcionando un correo electronico unico y una contraseña. Para agregar esta funcionalidad a su aplicacion, puedes usar el metodo createUserWithEmailAndPassword() de la clase FirebaseAuth. Como su nombre indica, el metodo espera una dirección de correo electronico y un password como argumentos.

Para poder determinar el resultado del metodo createUserWithEmailAndPassword, debe agregar un OnCompleteListener mediante el metodo addOnCompleteListener. El siguiente fragmento de codigo muestra como registrar un nuevo usuario y tambien dice si el proceso se completo correctamente.

Tenga en cuenta que es su responsabilidad validar el correo electronico y asegurarse de que los usuarios usen contraseñas seguras.

Puede echar un vistazo a las direcciones de correo electronico de todos los usuarios registrados en la pestaña Users de la seccion Auth de la consola de Firebase.

List of registered email addresses

Paso 4. Soporte de Inicio de Sesion

Después del registro exitoso, el usuario inicio sesión automáticamente. El usuario seguira estando conectado aunque la aplicacion se reinicie. No obstante, su aplicacion debe incluir el codigo que permita a los usuarios iniciar sesion manualmente usando su direccion de correo electronico y el password que especificaron durante el proceso de registro.

Para iniciar sesion manualmente, usted debera usar el metodo signInWithEmailAndPassword de la clase FirebaseAuth. El metodo espera una direccion de correo electronico y el password como sus unicos argumentos y retorna un objeto Task<AuthResult>. Al agregar un listener del tipo OnCompleteListener, puede comprobar si el inicio de sesion se completó correctamente.

Para evitar que un usuario inicie sesión cuando ya ha iniciado sesión, debe llamar al método signInWithEmailAndPassword() sólo si el FirebaseUser actual es null.

El siguiente fragmento de codigo muestra como iniciar sesion de un usuario:

Paso 5. Soporte de finalizar la sesion del usuario.

Para finalizar la sesion del usuario, simplemente llame al metodo signOut() de la clase FirebaseAuth.

3. Usando la base de datos de Firebase en tiempo real.

Una de las poderosas caracteristicas de la plataforma de Firebase en su base de datos en tiempo real, y es nombrado asi por una buena razón: todas las operaciones de escritura realizadas en él están disponibles al instante a todos los clientes que lo están observando. Con esta base de datos, puede crear aplicaciones que permitan a los usuarios cambiar sin problemas de un dispositivo a otro y colaborar de forma instantánea con otros usuarios.

Paso 1. Configure su proyecto.

Antes que uses la base de datos en tiempo real, debes agregar las siguientes depedencias del tipo compile en el archivo build.gradle del modulo app

Paso 2. Escribiendo datos.

Puedes pensar en la base de datos en tiempo real como un objeto JSON. Esto significa que puede agregar pares clave-valor a él, donde las claves son siempre cadenas, y los valores pueden ser tipos  primitivos, matrices u otros objetos JSON.

Antes que escribas en una base de datos en tiempo real, debes agregar una referencia usando el metodo getInstance() de la clase FirebaseDatabase. A continuación, puedes obtener una referencia a cualquier ruta dentro de la base de datos utilizando el método getReference(). La ruta puede contener una sola clave o varias claves ordenadas jerárquicamente.

Una vez que tienes una ruta a DatabaseReference, puedes establecer su valor utilizando el método setValue().

En ell siguiente fragmento de código vemos como agregar un simple par de clave-valor a la base de datos.

Al ir a la sección Database de la consola Firebase, puede ver todos los datos que se encuentran dentro de la base de datos en tiempo real.

Contents of realtime database in console

Paso 3. Leyendo Datos

Para leer un valor de la base de datos en tiempo real, debe asociar un observador asincrono a la ruta o clave. Mas precisamente, debes asociar un  ValueEventListener al objeto DatabaseReference usando el metodo addValueEventListener()

El metodo onDataChange() del ValueEventListener le da un acceso al objeto DataSnapshot, cuyo metodo getValue() se puede utilizar para recuperar el ultimo valor de la clave.

Por ejemplo, aqui vemos la forma de como puede recuperar el valor que establecimos en el paso anterior.

Tenga en cuenta que una vez que se agrega un ValueEventListener, su metodo onDataChange() se activa cada vez que el valor que se esta observando cambia.

Conclusión

La plataforma Firebase evita la necesidad de un servidor back-end y le permite centrarse en la creacion de mejores aplicaciones. En este tutorial, aprendió a usarlo para agregar análisis, autenticación de usuarios y almacenamiento en tiempo real de datos en la nube a su aplicación para Android.

Para leer mas acerca de Firebase, puede consultar la documentacion oficial. Tambien puedes consultar nuestro tutorial sobre el uso de Firebase Crash Reporting en Android


Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.