Geekflare cuenta con el apoyo de nuestra audiencia. Podemos ganar comisiones de afiliados comprando enlaces en este sitio.
Comparte en:

¿Cómo construir con éxito una API con Firebase?

API con Google Firebase
Escáner de seguridad de aplicaciones web Invicti – la única solución que ofrece verificación automática de vulnerabilidades con Proof-Based Scanning™.

Firebase es una plataforma de desarrollo de aplicaciones lanzada en 2012 y adquirida por Google dos años después. En sus inicios, se pensó en Firebase simplemente como una base de datos para aplicaciones en tiempo real, pero Google vio su potencial y decidió agregarle servicios adicionales.

Actualmente, Firebase es un BaaS (backend as a service) sistema con 18 servicios para facilitar la creación de aplicaciones web y móviles. Entre las empresas que utilizan los servicios BaaS de Firebase se encuentran Accenture, Alibaba Travels, Stack, Twitch e Instacart, junto con más de 2,300 más.

Beneficios de usar Firebase

El primero de los servicios que ofreció Firebase fue su base de datos en tiempo real, y sigue siendo uno de sus mayores atractivos. Las bases de datos en tiempo real de Firebase se alojan en la nube y almacenan datos en JSON formatear y sincronizar en tiempo real con cada cliente conectado a ellos. Ya sea que utilicen el SDK de iOS, el SDK de Android o el SDK de JavaScript, todas las aplicaciones conectadas a una base de datos de Firebase Realtime comparten una instancia de la base de datos, siempre actualizada con los datos más recientes.

Cloud Firestore es otro servicio interesante de Firebase. Es un NoSQL base de datos de documentos diseñada para facilitar el almacenamiento, la sincronización y la consulta de datos para aplicaciones móviles y web a escala global. La creación de jerarquías para almacenar datos relacionados y consultas expresivas para recuperar datos permiten aprovechar todo el potencial de Cloud Firestore. A su vez, las consultas escalan según el tamaño de los resultados en lugar del tamaño del conjunto de datos. Esto permite que las aplicaciones escalen desde el principio sin esperar hasta el momento en que las necesidades superen la capacidad.

Además de los servicios de base de datos antes mencionados, Firebase también ofrece servicios de alojamiento, almacenamiento de archivos, funciones (Estilo AWS Lambda), entre muchas otras cosas.

Crear una API

Las API son una forma de proporcionar servicios para que los utilicen sus propias aplicaciones o las de terceros. Firebase te permite brindar servicios personalizados que, a su vez, hacen uso de los propios servicios de Firebase sin la molestia de configurar un backend para esos servicios. Por ejemplo, podría ofrecer acceso a una base de datos en tiempo real de Firebase para que las aplicaciones de terceros consulten información recopilada por sensores industriales.

El primer paso para crear una API en Firebase es acceder a la Consola Firebase y agregue un proyecto haciendo clic en "Agregar proyecto" y dando un nombre al nuevo proyecto. Google te dará la opción de habilitar Google Analytics para su nuevo proyecto. Se recomienda aceptar esta recomendación, ya que obtendrá beneficios como las pruebas A / B y una amplia variedad de informes estadísticos de su API.

Una vez que haya creado su proyecto, podrá seleccionar los servicios de Firebase que usará su API. Para ilustrar esta tarea, veremos cómo usar el servicio de base de datos Firebase Realtime.

Configurar una base de datos en tiempo real en Firebase

En la barra de navegación de la izquierda, dentro de la sección Desarrollar, haga clic en Realtime Database. Aparecerá un botón "Crear base de datos" a la derecha. Haga clic en él para crear su primera base de datos en Firebase.

A continuación, deberá elegir entre varias opciones de ubicación geográfica para su nueva base de datos. Seleccione el más cercano a sus usuarios. Este es un aspecto importante para minimizar la latencia de su API, particularmente en aplicaciones en tiempo real.

El siguiente paso es configurar las reglas de seguridad básicas para su base de datos. Puede optar por el modo bloqueado y luego asignar permisos de acceso según sea necesario, u optar por el modo de prueba, que habilita todas las lecturas y escrituras.

Puede comenzar con la opción del modo de prueba para no complicar la configuración de seguridad al principio. Siempre puede crear reglas más tarde para establecer la configuración de seguridad con mayor granularidad.

Tan pronto como termine de configurar su base de datos, la API correspondiente también se habilita en la sección de Servicios y API de su consola personal en Google Cloud Platform.

Programando la API de Firebase

En este punto, ya tienes los elementos básicos de tu proyecto configurados en Firebase console. El siguiente paso es escribir su código API. Para hacer eso, deberá inicializar el alojamiento y las funciones de Firebase en su computadora local. Puede instalar firebase-tools usando npm:

npm install -g firebase-tools

Luego, puede iniciar sesión en firebase e inicializar su proyecto con los siguientes comandos:

firebase login firebase init

Aparecerá una pantalla de bienvenida en la que Firebase te informa de la carpeta en la que se inicializará tu proyecto y aparecerá un menú de opciones.

En ese menú, seleccione Funciones y Alojamiento (la opción Alojamiento le permitirá tener una URL personalizada para la API que desarrollará). Luego, elija de la lista la aplicación de Firebase que creó anteriormente, después de lo cual debe seleccionar el idioma a usar. Para desarrollar una API web, puede optar por JavaScript.

Si va a utilizar dependencias de paquetes, instálelas con npm dentro de la carpeta de funciones. Entonces puede comenzar a escribir el código para sus funciones. Recuerde incluir los paquetes firebase-functions y firebase-admin, junto con cualquier otro paquete que necesite:

import * as functions from 'firebase-functions'; 
import * as admin from 'firebase-admin';

Para utilizar la base de datos en tiempo real, debe especificar su URL al inicializar su SDK de JavaScript. La URL se encuentra en la sección Realtime Database de Firebase console. Puedes reconocerlo por su formato:

https://<database-name>.<region>.firebasedatabase.app

Puedes usar el siguiente fragmento para inicializar tu SDK, reemplazando los datos que corresponden al objeto de configuración de tu proyecto:

var config = {
  apiKey: "apiKey",
  authDomain: "projectId.firebaseapp.com",
  databaseURL: "https://databaseName.firebaseio.com",
  storageBucket: "bucket.appspot.com"
};
firebase.initializeApp(config);
var database = firebase.database();

Una vez que haya escrito el código de su función API, es el momento de implementar. Pero antes de hacerlo, tendrás que realizar algunos cambios en firebase.json, agregando las siguientes líneas, modificadas según la configuración de tu proyecto:

"rewrites": [
     {
       "source": "/api/v1/**",
       "function": "webApi"
     }
]

El siguiente paso es la implementación. La primera vez debes hacer un despliegue completo, ejecutando el comando:

firebase deploy

En implementaciones posteriores, podrá implementar solo las funciones, utilizando el parámetro –only functions.

Después de ejecutar el comando de implementación, Firebase CLI muestra la URL de los extremos HTTP de sus funciones en la terminal, que puede usar para invocar sus API desde una aplicación web. La URL contiene su ID de proyecto y una región para la función HTTP. Por ejemplo, la siguiente URL se puede utilizar para llamar a una función de consulta de elementos pasándole itemid = 1 como parámetro:

https://us-central1-apiproject-8753c.cloudfunctions.net/itemQuery?itemid=1

Para ejecutar la función, abra la URL con los parámetros correspondientes en un navegador.

Tenga en cuenta que la implementación en el entorno de producción requiere una suscripción al plan Firebase Blaze, que es de pago por uso, como puede leer en la página de precios de Firebase. Es un servicio de posfacturación, lo que significa que se le factura por su uso al final de cada mes.

Si no tiene una suscripción a Blaze, el comando de implementación no mostrará la URL de su API. En su lugar, verá un mensaje que le informa que debe suscribirse al plan Blaze si desea implementar en el entorno de ejecución. En este caso, aún puede usar Firebase Local Emulation Suite para compilar y probar aplicaciones en su máquina local en lugar de implementarlas en el entorno de producción de Firebase. Las pruebas locales son útiles para evitar costos innecesarios durante el desarrollo de la aplicación, ya que cada ejecución de prueba puede generar cargos en su cuenta.

Pruebas y prototipos locales

La herramienta Local Emulator Suite ofrece una interfaz de usuario integrada que hace que la creación de prototipos sea fácil y útil para probar sus aplicaciones en su máquina local.

Con la interfaz de usuario de Emulator Suite, puede probar los diseños de su base de datos, sus Cloud Functions workflows, analizar el rendimiento de los servicios backend y evaluar cambios en las reglas de seguridad, entre otras tareas. Básicamente es un entorno seguro para probar la funcionalidad de su API antes de enviarla a un entorno de producción.

Para emular sus funciones o probar su aplicación localmente, ejecute los emuladores de firebase: start. Debe tener Java instalado para poder utilizar Firestore Emulator. Si no lo tiene, puede instalarlo desde aquí.

Cuando invocas Firestore Emulator, el comando devolverá una URL que te permitirá abrir la interfaz de usuario de Emulator Suite en tu navegador. De forma predeterminada, esta URL será localhost: 4000, pero puede variar en cada máquina.

También obtendrá una URL completa para su función HTTP. Esta URL se verá similar a:

http://localhost:5001/apiproject-8753c/us-central1/itemQuery

solo tendrá el nombre de su proyecto, el nombre de su función y también podría tener un número de puerto diferente en su máquina local.

Para probar la función, copie la URL devuelta por el emulador, agregue los parámetros necesarios (por ejemplo,? Itemid = 1) e ingréselo en una nueva pestaña de su navegador. Los resultados de la ejecución de la API aparecerán en la interfaz de usuario de Emulator Suite.

En la pestaña Registros, verá nuevos registros que indican que se ejecutó la función itemQuery (). Si su función genera nuevos datos en su base de datos de Firestore, lo verá en la pestaña Firestore.

Obtener más exposición para su API

Si desea que las API que desarrolle se vuelvan populares, Firebase también puede ayudarlo con eso. No solo porque le permite construir su aplicación más rápido, lo que le quita gran parte del trabajo de poner en funcionamiento los servicios de backend, sino que también le ayuda con el posicionamiento de su producto. ¿Cómo es eso posible? Simplemente porque las aplicaciones asociadas con Firebase se clasifican mejor en las clasificaciones de búsqueda que otras aplicaciones.

Además, tenga en cuenta la API de indexación de aplicaciones de Firebase. Esta herramienta mejora la clasificación de búsqueda de los enlaces de aplicaciones y ayuda a los usuarios a encontrar el contenido deseado. También coloca el botón Instalar después del botón de la página de inicio de su aplicación para que los usuarios interesados ​​estén a solo un clic de convertirse en usuarios de su aplicación.

En conclusión, Firebase no solo le ofrece servicios de backend que aceleran drásticamente la desarrollo de tu API pero una vez que está en funcionamiento y expuesto al mundo, también le ayuda a promocionarlo y a ganar dinero con él.

Gracias a nuestros patrocinadores
Más lecturas interesantes sobre el desarrollo
Impulse su negocio
Algunas de las herramientas y servicios para ayudar a que su negocio crezca.
  • Invicti utiliza Proof-Based Scanning™ para verificar automáticamente las vulnerabilidades identificadas y generar resultados procesables en cuestión de horas.
    Prueba Invicti
  • Web scraping, proxy residencial, administrador de proxy, desbloqueador web, rastreador de motores de búsqueda y todo lo que necesita para recopilar datos web.
    Prueba Brightdata
  • Semrush es una solución de marketing digital todo en uno con más de 50 herramientas en SEO, redes sociales y marketing de contenido.
    Prueba Semrush
  • Intruder es un escáner de vulnerabilidades en línea que encuentra debilidades de ciberseguridad en su infraestructura, para evitar costosas filtraciones de datos.
    Intente Intruder