Qué son las Firebase Tools, cómo obtenerlas y un resumen de los comandos que nos ofrecen para mantener, desarrollar y desplegar aplicaciones en Firebase.
Firebase Tools es un paquete de herramientas pensadas para el desarrollo de aplicaciones Firebase. Son útiles y hasta imprescindibles cuando vas a crear aplicaciones, permitiendo realizar diversos tipos de operativas, como servir una página en local o hacer el despliegue de una aplicación.
Decimos imprescindibles, aunque lo cierto es que podrías empezar a desarrollar sin necesidad de tener las Firebase Tools. Sin embargo, para el hosting de Firebase no existe la posibilidad de acceder por FTP, ni tampoco ssh o algo parecido, por lo que la única manera de subir tus archivos es usando las Firebase Tools.
Instalar firebase-tools
El primer paso será obtener las herramientas, que instalas con npm, por línea de comandos:
npm install -g firebase-tools
Esta instalación permite que tengamos disponible de manera global el comando "firebase", que a su vez tendrá varios sub-comandos para realizar diferentes cosas. Puedes comenzar lanzando el comando de ayuda para ver todo lo que firebase-tools te proporciona:
firebase --help
Login / logout en Firebase
Para muchos de los comandos de Firebase Tools necesitas tener permisos concedidos. Obviamente mucha operativa trabaja con tu cuenta de Firebase y necesitas estar logueado.
Existen dos comandos muy sencillos, uno de los cuales puedes ejecutar ya mismo.
firebase login
Ese comando abrirá un navegador para que des permisos a Firebase Tools, para lo que tendrás que introducir la clave de tu cuenta de Google, con la que entras en la consola de Firebase.
firebase logout
Ese comando servirá para retirar los permisos a firebase tools, algo importante en ciertos casos, porque si no lo haces, cualquiera con acceso a ese ordenador sería capaz de realizar cualquier acción con tus aplicaciones.
Servidor web integrado
Como sabes, para que tus páginas con Firebase funcionen necesitas acceder a ellas por medio de http, o sea, pasando por un servidor web. Ahora Firebase te incluye ese servidor, por lo que te ahorra tener configurado cualquier otro server en tu ordenador. Es un servidor sencillo, de archivos estáticos, pero podrás usarlo perfectamente ya que con Firebase no hay programación del lado del servidor.
El comando para lanzar el servidor web integrado es:
firebase serve
Si lo lanzas sobre cualquier carpeta donde no hayas inicializado una aplicación usará como "document root" esa carpeta desde donde lo ejecutaste. Verás que te aparece justamente un mensaje en inglés informando de esa situación. Pero iniciando una aplicación, como veremos a continuación, evitarás que te aparezca ese mensaje de aviso y además podrás configurar la raíz del servidor en otras carpetas.
Inicializar una aplicación Firebase
Otra de las cosas más típicas que querrás hacer con Firebase es inicializar una aplicación. Este paso es imprescindible para luego poder desplegar esa aplicación en el hosting que te ofrece Firebase.
Inicializamos la aplicación de Firebase con el comando:
firebase init
Este proceso recabará una serie de informaciones por línea de comandos, para configurar tu aplicación.
Lo primero que te dice es que indiques qué quieres inicializar (What Firebase CLI features do you want to setup for this folder?), ofreciendo dos posibilidades, las reglas de seguridad y el hosting. Puedes apretar la barra espaciadora para seleccionar o no cualquiera de las opciones, aunque generalmente querrás ambas cosas, para lo que pulsas enter.
Luego te preguntará qué aplicación de Firebase, de las que has creado en la consola, quieres que se asocie a esta aplicación que se está inicializando.
A partir de ahí seguramente podrás proporcionarle otros datos que necesita el comando, pero voy a dar un algunos tips, que si eres nuevo en Firebase pueden contestarte alguna duda.
What file should be used for Database Rules?
Aquí te está pidiendo el archivo donde vas a escribir las reglas de seguridad en local. Si ya tienes un archivo como "rules.json" o algo parecido, simplemente indícaselo. Pero OJO, en la siguiente pregunta te pedirá si quieres que lo sobreescriba con un código inicial, dile que no, para que no te borre tus reglas actuales. Si no tienes un archivo de reglas puedes dejar la opción que te aparece por defecto "database.rules.json" pulsando enter. Entonces te creará tal archivo entre los de tu proyecto.
What do you want to use as your public directory?
Aquí te está preguntando sobre la carpeta raíz de publicación, o document root. Puedes indicarle el lugar donde tienes tu index.html, o si quieres la carpeta que te propone (public), en cuyo caso te la creará y colocará un index.html inicial.
Configure as a single-page app (rewrite all urls to /index.html)?
Esto es para que le indiques si tu web va a ser una SPA (single page application) o aplicación de una sola página. Ya sabes, una aplicación web donde solo hay un index.html y todas las rutas de la aplicación realmente se sirven desde el mismo fichero.
Una vez ejecutado el firebase init te creará dos archivos: firebase.json y .firebaserc que contendrán la información entrada en este proceso, en los formatos que Firebase necesita.
Despliegue de una aplicación
Ya que tienes tu aplicación inicializada, puedes desplegarla en los servidores de hosting de Firebase. Es un alojamiento gratuito que puedes usar incluso con tu propio nombre de dominio, lo que resulta muy útil (y generoso).
El deploy es un juego de niños, ya que la información necesaria para realizarlo se ha configurado previamente con el "firebase init". Lo realizas con este comando:
firebase deploy
Ahora todo será automático y al final te aparecerá un mensaje con la URL del dominio donde puedes ver tu web una vez publicada en el servidor de Firebase.
Existen otros comandos menos necesarios para la operativa del día a día, dentro de las Firebase Tools, te recomiendo que consultes la ayuda o bien accedas al repositorio de Github donde está el código de firebase-tools para encontrar más información.
Miguel Angel Alvarez
Fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Com...