Creación de diccionario griego con React Native: Creación del api con Node Js, express, Firebase Functions y FirestoreParte 1
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.
$ 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 ?
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