Entonces mi URL está funcionando a la perfección, you sea cual sea el parámetro que envió, es el parámetro que me devuelve. Y lo que haré a continuación de acuerdo a nuestro itinerario, que teníamos por aquí, de acuerdo a esto lo que debemos hacer es que una vez que you tenemos lista nuestra petición o nuestro endpoint a partir de una RestAPI, si viste qué fácil y qué rápido lo hicimos. Ahora vamos a atacar el punto número dos, vamos a trabajar con el almacenamiento de la base de datos y recuerda que habíamos platicado que el almacenamiento iba a ser a través de Firebase, okey. Entonces voy a entrar a mi aplicación Petagram y voy a ir a la parte de Firebase y listo, hasta ahorita pues esta es la data que estoy trabajando. Como vimos hace un momento esta es la data que espero trabajar, esta es la formal estructura que quiero tener para estar almacenando mis elementos. Solamente este dato, bueno, you tú lo estarás implementando, hasta ahorita yo voy a estar trabajando con esta forma de data, que solamente esté recibiendo muchos tokens. Entonces voy a empezar, voy a ver, voy a ir a los samples de Firebase y voy a poner aquí código de ejemplo. Vamos a trabajar las guides y aquí donde dice get start vamos a ir a la parte de server, okey. Vamos a ver cómo es que tenemos que configurar nuestro proyecto para comenzar a integrar Firebase, okey. Entonces dice que los pre requisitos es que si estás usando Node.js el SDK de Node.js, debes correr, debes tener un servidor de Node.js con la versión 0.10 o superior. Okey entonces bueno, sí estamos trabajando con eso o también aquí vienen los pasos para configurar un servidor Java con SDK. Recuerda que con Heroku también podemos generar un servidor Java. Entonces dice el primer paso, añade Firebase a tu aplicación, okey, añade tu aplicación a Firebase. Entonces dice que crees un proyecto en Firebase, nosotros you hemos hecho este primer paso, y que posteriormente vayas a tu aplicación y entonces des clic en el icono de ajustes y selecciones permissions. Bien, entonces voy a entrar a mi aplicación, aquí está mi aplicación Petagram, este es el icono que me está haciendo referencia y dice que entre a permisos. Una vez estando ahí dice que seleccione Service account, y cree una nueva cuenta service account. Okey, entonces inmediatamente voy a seleccionar cuentas de servicio, esta que está aquí. Yo podría crear una nueva cuenta de servicio, vamos a crearla, vamos a ponerle aquí Petagram server, petagramserver, y dice que una vez entra el nombre de tu servicio y opcionalmente puedes personalizar el ID que se genera automáticamente en el nombre. Selecciona Furnish a new private key y Key type as JSON. Entonces dice selecciona suministrar una clave privada en formato JSON, lo seleccionamos, y además dice que también necesitamos habilitar Google Apps Domains, okey bien este habilitar la delegación de dominios de Google Apps, le vamos a dar crear. Listo you ha creado nuestro proyecto y dice que clic en create. Cuando crees tu proyecto en la cuenta de servicio un archivo de JSON contendrá tus credenciales de service account, bien se descargará para ti, etcétera. Bien entonces este archivo, este archivo es nuestro archivo clave, muy bien, este no debemos perderlo de vista, es más lo voy a integrar a mi proyecto, lo voy a integrar aquí a mi proyecto, debe estar en la raíz, okey. Está en index.js y aquí debe estar también mi Petagram, y vamos a abrirlo, vamos a ver qué tiene, automáticamente con su blind text. you aquí nos aparece, y bueno aparecen muchas cosas que son básicamente las credenciales para poder estarnos conectando con Firebase, okey. Para que este servidor que está construido con Node.js se conecte a Firebase. Entonces aquí están todas las credenciales o todas las claves, los accesos necesarios para poder estar realizando esto, le voy a dar aquí cerrar. Y algo que debemos también ver, que eso no está aquí, es que en IAM debemos tener el acceso como editor y bueno automáticamente aquí you nos ha dado de alta automáticamente. Pero algunas veces probablemente no estés apareciendo aquí, entonces asegúrate que estás aquí porque si no estás como editor, aunque descargues el archivo, lo tengas correctamente configurado, etcétera no vas a poder conectar tu aplicación, tu web service a Firebase, okey. Entonces necesitamos esto que está aquí. Bien entonces todo esto lo encontramos, aquí está en guides, get started, en server, y Bueno dice add Firebase to your app. Ahora dice añade el SDK, okey esto es lo que necesitamos, necesitamos comenzar a instalar. Pero nosotros tenemos, recuerda que tenemos nuestro comando especial para instalar, lo voy a quedar hasta aquí y simplemente agregamos lo demás que nos está pidiendo. Necesitamos instalar Firebase, la librería Firebase, le vamos a dar ahí listo, npm install --save --exact, le voy a dar enter, listo you integrado Firebase a nuestro proyecto de forma local. Eso quiere decir que you puedo comenzar a utilizar una instancia de Firebase. Entonces esto lo voy a copiar y lo voy a incluir a mi proyecto, okey. Voy a seguir aquí en el index, voy a ir hasta la parte de arriba y después de esta configuración de body parser vamos a meter aquí a nuestro proyecto la conexión con nuestra base de datos Firebase, okey. Entonces you tenemos aquí la instancia, veamos que más dice la documentación, dice inicializa el SDK, okey. Entonces tenemos que inicializar con los datos que nos ha dado. Vamos a copiar y pegar esta información firebase.initializeApp. Primero nos pide el service account, que el service account va a responder al JSON que descargamos hace un momento, que precisamente es este Petagram 65, cuando dimos de alta, cuando dimos de alta nuestra aplicación por acá en la parte de permisos, okey. Entonces vamos a poner esto, justamente ese mismo nombre, debemos colocar el path en donde se encuentra ubicado ese archivo, en nuestro caso ese archivo está en la raíz, entonces simplemente lo coloco así, y después nos solicita la base de datos, la URL de la base de datos. Okey, esa URL la podemos obtener aquí en nuestro panel de Firebase, en data base, y esta URL es la URL que nos está solicitando, vamos a copiarla, esa es la URL de la base de datos y la vamos a pegar aquí. Perfecto, you está configurada nuestra base de datos, vamos a quitarle el diagonal, no debe tener diagonal y una vez que you está configurada nuestra base de datos you estamos apuntando nuestras credenciales al archivo JSON que descargamos. Entonces you podemos comenzar a en nuestro método post, la idea es que una vez que recibimos ese token, ese token lo almacenemos en esta base de datos, okey. Entonces voy aquí a colocar este request.body.token, lo voy a poner más bien en una variable, le voy a poner token así y voy a inicializar var db igual a mi objeto Firebase que más arriba instancié y le voy a decir que traiga la base de datos. Okey, vamos a la documentación a ver qué más nos está diciendo. Dice que una vez que puedes también si no tienes tu objeto, tu archivo JSON, puedes insertar los datos por separado, okey. Entonces vamos ahora aquí donde dice Realtime Database y vamos a ver la parte de server. Y aquí viene pues toda la documentación, dice que you pongas tú, instancies tu objeto, inicialices tu aplicación y entonces you puedes comenzar a apuntar o a obtener una referencia del path que quieres trabajar en la base de datos. Nosotros vamos hasta aquí. Hasta ahorita hemos pasado, hemos pasado esa base de datos a este objeto db. Ese objeto db. Y entonces vamos a continuación a obtener el path, pathTokenDevices. Lo que en realidad estamos obteniendo es la referencia de la base datos. Le voy a poner cómo quiero que empiece a crear las claves y le voy a decir que empiece a crear las claves a partir de token-device y le voy a decir que lo que, como van a ser varios elementos, pues entonces se está ejecutando acciones tipo push. Las acciones tipo push van a estar insertando un dato asignándole un identificador único, posteriormente otro dato le asigna otro identificador. Es decir, nos va a permitir estar insertando varios datos. Si yo lo dejara sin push, lo que estará haciendo es, estará insertando un registro, y después, al venir el otro, estará sobreescribiendo el mismo registro. Entonces yo con push estoy diciéndole que asigne identificadores a cada registro que estoy colocando. Okey, entonces ahora, con mi objeto que lo voy a dejar en tokenDevices. Mi objeto tokenDevices vamos a invocar su método set, y vamos a definir qué cosas o la estructura de la data que queremos insertar en este path, ¿okey? Le voy a poner que la estructura de la data es que únicamente venga token: mi variable token, ¿okey? Inserte el token que estoy recibiendo. Si yo quisiera añadir otro campo, pues bueno, aquí puedo poner coma y esto se está comportando como un objeto JSON. Recuerda que nuestra base de datos realmente en esta data, en esta estructura JSON, como la definamos, así se estará definiendo nuestra base de datos. No estamos trabajando nada de tablas ni nada parecido como my SQL o SQL sever, etcétera. Esto es una sintaxis muy similar a la que Mongodb maneja. Okey. Una vez que you tengo esto, estoy ejecutando push, pues vamos a probar nuestra aplicación, que una vez que yo esté recibiendo las peticiones, entonces esas, una vez que yo esté recibiendo el token, ese token lo extraigo del body, inicializo mi objeto database, defino un path, y a ese path le inserto la variable token, ¿okey? Finalmente lo que voy a estar aquí respondiendo, puedo decir, bueno, ahorita trabajamos la respuesta. Vamos a añadir cambios y vamos a ahora el commit que vamos a trabajar aquí es conexión a base de datos con Firebase, ¿okey? Eso es lo que vamos a trabajar. Vamos a copiar este comando y lo pegaré aquí, listo. Mandar un enter. Vamos a decirle que nos abra heroku open/android. Vamos a estarle diciendo así todo el tiempo, que nos abra este path para ver por lo menos algo bien perfecto. Todo, si nos abre esta página, quiere decir que hasta el momento todo salió bien, todas mis instancias se crearon correctamente. Si alguna, si sucede algo, te aparece algún error aquí, bueno, puedes echar mano del heroku logs espacio --tail para observar. Ahí se va a estar registrando qué librería o qué instancia no se está ejecutando bien. Entonces no te olvides de instalar todas las librerías adicionales porque eso es uno de los errores más comunes, que estamos tratando de instanciar de una librería que no, que no vive en nuestro proyecto. Perfecto. you tenemos, vamos a abrir nuestro Postman, vamos a probar una petición y ahora lo que esperamos hacer es que una vez el dato que mandemos aquí en el parámetro token será un dato que se estará insertando en nuestra base de datos. Y lo mejor de esto es que esto se maneja en tiempo real, como su nombre lo dice, es una base de datos en real time. Entonces aquí estaremos viendo cómo es que funciona esto. Bien, vamos a, tenemos you configurado nuestro path. No olvides /token device. En body colocamos los parámetros. Yo voy a poner 12345, ¿okey? Bien. Vamos a darle send. ¡Y listo! Acabamos de ver que la base de datos se está insertando a partir del path que nosotros definimos aquí, aquí. A partir del path que nosotros definimos en nuestra referencia db. Si colocas token-device será el path que comience a abrir y con nuestro método push, estaríamos diciendo que asigne identificadores únicos para que, a medida que esté recibiendo cada petición, esté insertando registros diferentes. Y entonces la forma de la data es a partir de la llave token, y entonces está mostrando el token, está asignando el token que está recibiendo a partir del método post. Vamos a insertar otro más, vamos a insertar otro más para que veamos esto cómo se va comportando. Vamos a insertar ahora del 0 al 5. Listo, se ha creado otro dato. Y así puedo seguirme pasando jugando con esto y todo esto se está almacenando en Firebase. Y entonces puedo estar trabajando con una base de datos en tiempo real.