Creación de diccionario griego con React Native: Creación del api con Node Js, express, Firebase Functions y FirestoreParte 1

Código, Libros y Podcast

Creación de diccionario griego con React Native: Creación del api con Node Js, express, Firebase Functions y FirestoreParte 1

No hay comentarios



Continuando con nuestro proyecto de creación de un diccionario de Griego-Español, en esta ocasión vamos a crear el api que nos permitirá realizar las operaciones de CREATE, PUT, DELETE. Esto lo vamos a hacer con Node js como Back end y Firestorage como base de datos.

El api es una de las partes más importante de una aplicación móvil o de un servicio web., y se podría decir que es el cerebro una nuestro proyecto.

Firebase que es un servicio que nos permite tener un back end con el método serverless.  Hay muchos proveedores que nos permiten crear un back end serverless, por ejemplo Vercel, Heroku, Amazon AWS, entre otros, sin embargo he seleccionado a Firebase porque ya he trabajado con este servicio.

 Lo primero es tener una cuenta creada en Gmail, luego es necesario crear un proyecto en Firebase. Luego, creamos un directorio en nuestro ordenador, en mi caso le llamaré ‘diccionaryapi’, dentro de este directorio vamos a instalar firebase-tools, para esto corremos el siguiente comando:


$ npm install –g firebase-tools


Esto nos instalará la herramienta firebase-tools de manera global. Nos creará los siguientes ficheros:

Ahora debemos correr el comando firebase init


$ firebase init


Nos aparecerá una pantalla en la que nos hará varias preguntas, la primera es: Are you ready to proced ?


 Le damos Y

Luego nos preguntará que deseamos crear, aquí seleccionamos al opción Functions: Configure a Cloud Functions directory and its files:



La seleccionamos con la tecla de espacio.

Luego nos preguntará si tenemos un proyecto existente, en mi caso selecciono esa opción porque tengo el proyecto creado en Firebase.



Luego, no preguntara si deseamos usar JavaScript o TypeScript, en mi caso selecciono JavaScript.



Luego, nos pregunta si deseamos usar Eslint para ayudar a mejorar el código. En mi caso le digo que si



Por ultimo nos pregunta si deseamos instalar las dependías de Node, le decimos que si

Si todo se ha instalado correctamente, nos mostrará el siguiente mensaje:


 Ahora vamos a editar nuestro backend

Lo primero es instalar express y cors


$ npm install express cors


Luego lo agregamos en el index.js que se ha creado en nuestro proyecto dentro del directorio functions:


Luego lo agregamos dentro del index con require:


Si te fijas para realizar el exports hacemos uso del método que ya nos ofrece firebase, es decir envolvemos nuestra app dentro de este método:

exports.app = functions.https.onRequest(app) 


Ahora crearemos nuestra primera ruta la cual simplemente mostrará un mensaje:

app.get(‘/libros’, (req, res)=>{ res.status(200).json({message:”Todos los libros”}))

Con lo que hemos hecho hasta ahora podríamos probar y ver que nos muestra. Lo corremos con firebase serve, esto nos mostrará el mensaje que ya hemos configurados en la ruta libros con el método get:


 

Conectar con Firestore

Ahora pasaremos a una de las partes más importantes de nuestro proyecto: la conexión con una base de datos. En esta base de datos vamos a guardar las informaciones requeridas para que nuestro proyectos funciones correctamente, como datos del usuario, palabras más buscadas en el diccionario, y los libros, entre otos. Lo que haremos es conectar nuestro proyecto con una base de Datos de Firestore. Para esto vamos a Firebase y seleccionamos la opción “Configuración del Proyecto”:



Luego vamos a la opción “Cuentas de Usuario”, nos desplazamos hasta el final, y le damos donde dice “Generar Nueva Clave Privada”:

Esto nos generará un fichero que será el que usaremos en nuestro proyecto. Ese fichero debemos colocarlo en algún lugar dentro de nuestro proyecto, en mi casi lo guardaré en el directorio functions, y le cambiaré el nombre a “creadentials.json’

Ahora, dentro de nuestro proyecto debemos crear la conexión a la base de datos de Firestore:

Creamos una constante de nombre “admin” a la que hacemos igual a un require de “firebase-admin”. Luego accedemos al método “initializeApp” de la constante admin. A este método le pasamos un objeto con las credenciales que hemos descargado y el nombre de la base de datos de Firestore:



Ahora creamos una contante de conexión llamada db:


const db = admin.firestore()


Creamos una ruta post para poder probar.

app.post(‘/libros’, (req, res)=>{  db.collection(“libros”) .doc(“/”+req.body.id+”/”).create({name: req.body.name})    return res.status(200).json() })


Corremos el comando :


firebase serve

 

Esto comando nos va a generar una url la cual podemos colocar en nuestro navegador y probar nuestro proyecto de manera local


No hay comentarios :

Publicar un comentario