Aprende a crear y desplegar tu primera Cloud Function con Firebase y Node.js paso a paso. Desde instalar firebase-tools hasta publicar un endpoint HTTPS, verás comandos clave, estructura del proyecto y configuraciones como memoria (256 MB), timeout (60 s) y regiones. Todo con buenas prácticas y sin complicaciones.
¿Cómo preparar el entorno con firebase-tools y npm?
Para trabajar con Cloud Functions, necesitas la CLI de Firebase y npm. En un editor como Visual Studio Code, abre la terminal e instala la herramienta globalmente. Luego autentícate para vincularte con tu cuenta de Google.
La CLI abre el navegador para autorizar tu cuenta de Google.
Otorga permisos y verifica el mensaje: autenticado exitosamente.
Listo para iniciar el proyecto y desplegar funciones.
¿Cómo iniciar sesión con firebase login?
Ejecuta: firebase login en la terminal.
Elige tu usuario en el navegador y acepta permisos.
Vuelve a la terminal y confirma el estado de autenticación.
¿Cómo inicializar el proyecto de Cloud Functions en Firebase?
Con la sesión activa, crea la base del proyecto con el asistente de Firebase. Esto configura la carpeta, dependencias y archivos esenciales.
firebase init functions
Selecciona el proyecto de Firebase donde desplegarás funciones.
Elige el lenguaje: JavaScript o TypeScript (aquí se usa JavaScript).
Versiones de Node.js: seis estable; ocho en beta. Usa la estable para evitar fallos.
Activa “Slim” para guías y buenas prácticas al codear (validaciones tipo lint).
Acepta instalar dependencias mínimas: firebase-admin y firebase-functions.
¿Qué archivos y configuración se generan?
El asistente crea una estructura clara y lista para trabajar.
Carpeta functions: contiene el código de tus funciones.
Archivo firebase.json: define tareas como preDeploy para correr npm run lint antes de desplegar. Ajusta el directorio a “Functions” si cambia el nombre de la carpeta.
Archivo de enlace al proyecto: guarda el ID del proyecto seleccionado para las funciones.
Dentro de functions:
package.json: scripts, dependencias y metadatos del proyecto Node.
index.js: punto de entrada donde se declaran los disparadores.
¿Cómo escribir, desplegar y gestionar una función HTTPS?
Tu primera función expondrá un endpoint HTTPS. En index.js, importa la librería y exporta la función con el disparador adecuado.
const functions =require('firebase-functions');exports.HelloWorld= functions.https.onRequest((req, res)=>{ res.send('Hello from Firebase');});
Despliega todas las funciones o una en específico. Usa la consola de Firebase para ver detalles como memoria (256 MB) y timeout (60 s). Por defecto, se aloja en la región US Central uno.
# Desplegar todas las funcionesfirebase deploy --only functions
# Desplegar una función específicafirebase deploy --only functions:HelloWorld
# Eliminar una funciónfirebase functions:delete HelloWorld
# Ver registros (logs) de funcionesfirebase functions:log
También puedes ajustar región, memoria y timeout desde el código, encadenando configuraciones antes del disparador HTTPS.
exports.HelloWorld= functions
.region('us-central1').runWith({memory:'512MB',timeoutSeconds:60}).https.onRequest((req, res)=>{ res.send('Hello from Firebase');});
Cambia la región con .region(...): por ejemplo, una de Asia o Europa según tu necesidad.
Ajusta memory y timeoutSeconds: valores como 128, 256, 512 MB hasta 3 GB, y segundos para tiempos de espera.
Mantén el código modular: evita “chorros” en index.js separando en componentes.
¿Tienes dudas o ya desplegaste tu primer endpoint? Cuéntame en los comentarios qué función planeas crear y qué configuración (región, memoria, timeout) necesitas.
Aprende a crear y desplegar tu primera Cloud Function con Firebase y Node.js paso a paso. Desde instalar firebase-tools hasta publicar un endpoint HTTPS, verás comandos clave, estructura del proyecto y configuraciones como memoria (256 MB), timeout (60 s) y regiones. Todo con buenas prácticas y sin complicaciones.
¿Cómo preparar el entorno con firebase-tools y npm?
Para trabajar con Cloud Functions, necesitas la CLI de Firebase y npm. En un editor como Visual Studio Code, abre la terminal e instala la herramienta globalmente. Luego autentícate para vincularte con tu cuenta de Google.
La CLI abre el navegador para autorizar tu cuenta de Google.
Otorga permisos y verifica el mensaje: autenticado exitosamente.
Listo para iniciar el proyecto y desplegar funciones.
¿Cómo iniciar sesión con firebase login?
Ejecuta: firebase login en la terminal.
Elige tu usuario en el navegador y acepta permisos.
Vuelve a la terminal y confirma el estado de autenticación.
¿Cómo inicializar el proyecto de Cloud Functions en Firebase?
Con la sesión activa, crea la base del proyecto con el asistente de Firebase. Esto configura la carpeta, dependencias y archivos esenciales.
firebase init functions
Selecciona el proyecto de Firebase donde desplegarás funciones.
Elige el lenguaje: JavaScript o TypeScript (aquí se usa JavaScript).
Versiones de Node.js: seis estable; ocho en beta. Usa la estable para evitar fallos.
Activa “Slim” para guías y buenas prácticas al codear (validaciones tipo lint).
Acepta instalar dependencias mínimas: firebase-admin y firebase-functions.
¿Qué archivos y configuración se generan?
El asistente crea una estructura clara y lista para trabajar.
Carpeta functions: contiene el código de tus funciones.
Archivo firebase.json: define tareas como preDeploy para correr npm run lint antes de desplegar. Ajusta el directorio a “Functions” si cambia el nombre de la carpeta.
Archivo de enlace al proyecto: guarda el ID del proyecto seleccionado para las funciones.
Dentro de functions:
package.json: scripts, dependencias y metadatos del proyecto Node.
index.js: punto de entrada donde se declaran los disparadores.
¿Cómo escribir, desplegar y gestionar una función HTTPS?
Tu primera función expondrá un endpoint HTTPS. En index.js, importa la librería y exporta la función con el disparador adecuado.
Despliega todas las funciones o una en específico. Usa la consola de Firebase para ver detalles como memoria (256 MB) y timeout (60 s). Por defecto, se aloja en la región US Central uno.
# Desplegar todas las funciones
firebase deploy --only functions
# Desplegar una función específica
firebase deploy --only functions:HelloWorld
# Eliminar una función
firebase functions:delete HelloWorld
# Ver registros (logs) de funciones
firebase functions:log
También puedes ajustar región, memoria y timeout desde el código, encadenando configuraciones antes del disparador HTTPS.
Cambia la región con .region(...): por ejemplo, una de Asia o Europa según tu necesidad.
Ajusta memory y timeoutSeconds: valores como 128, 256, 512 MB hasta 3 GB, y segundos para tiempos de espera.
Mantén el código modular: evita “chorros” en index.js separando en componentes.
¿Tienes dudas o ya desplegaste tu primer endpoint? Cuéntame en los comentarios qué función planeas crear y qué configuración (región, memoria, timeout) necesitas.
🗺 Podemos cambiar la región de despliegue o el espacio que ocupan nuestras funciones utilizando solo código de JavaScript:
# Normal:
exports.helloWorld = functions.https.onRequest((request, response) => {
response.send("Hello from Firebase!");
});
# Cambiar la región:
exports.helloWorld = functions.region("NOMBRE DE LA REGIÓN. Ex. asia-northeast1").https.onRequest((request, response) => {
response.send("Hello from Firebase!");
});
# Cambiar el espacio:
exports.helloWorld = functions.runWith("Cantidad de GB. Ex. 1GB").https.onRequest((request, response) => {
response.send("Hello from Firebase!");
});
📚 Podemos encontrar toda esta y muchísima más información en Administra la implementación de funciones y las opciones de tiempo de ejecución - Firebase Docs.
me salta el siguiente error alguien sabra por que?
✔ functions: Finished running predeploy script.
i functions: ensuring necessary APIs are enabled...
✔ functions: all necessary APIs are enabled
i functions: preparing functions directory for uploading...
i functions: packaged functions (41.64 KB) for uploading
✔ functions: functions folder uploaded successfully
i functions: updating Node.js 8 function helloWorld(us-central1)...
⚠ functions[helloWorld(us-central1)]: Deployment error.
Failed to retrieve function source code
Functions deploy had errors with the following functions:
helloWorld
To try redeploying those functions, run:
firebase deploy --only functions:helloWorld
To continue deploying other features (such as database), run:
firebase deploy --except functions
Error: Functions did not deploy properly.
Having trouble? Try firebase deploy --help
como puedo usar la sintaxis de ES6 (import, async/await) para escribir mis cloud functions? Estoy emilandolas sobre node 8 pero parece no ser suficiente ya que me tira error de sintaxis!
Para los que les aparece el error de Error: Cloud Functions deployment requires the pay-as-you-go (Blaze) billing plan.
deben actualizar su metodo de pago de firebase a blaze con una tarjeta de credito, no se les cobrará nada a menos que superen los limites establecidos.
El no explico los parámetros que se deben pasar para configurar tamaño de memoria y tiempo de espera de una función. Si alguien los necesita se los adjunto:
🗺 Podemos cambiar la región de despliegue o el espacio que ocupan nuestras funciones utilizando solo código de JavaScript:
# Normal:exports.helloWorld= functions.https.onRequest((request, response)=>{ response.send("Hello from Firebase!");});# Cambiar la región:exports.helloWorld= functions.region("NOMBRE DE LA REGIÓN. Ex. asia-northeast1").https.onRequest((request, response)=>{ response.send("Hello from Firebase!");});# Cambiar el espacio:exports.helloWorld= functions.runWith("Cantidad de GB. Ex. 1GB").https.onRequest((request, response)=>{ response.send("Hello from Firebase!");});
📚 Podemos encontrar toda esta y muchísima más información en Administra la implementación de funciones y las opciones de tiempo de ejecución - Firebase Docs.
Que plugin hace que salga una llama cada vez que escribes en VS Code?
Hola, intenta revisar esto icon-theme, debe ser un tema de iconos.
Hola ebar0n, gracias pero el plugin se llama Power Mode
Comandos:
Desplegar solo una función:
firebase deploy --only functions:helloworld
.
Eliminar una función:
firebase functions:delete helloworld
.
Ver log:
firebase functions:log
.
Ver log:
firebase functions:log
Primeros pasos: Cómo escribir y también implementar tus primeras funciones - Firebase Docs
Firebase Cloud Functions — Instalación y primeros pasos en español - Medium
Si tiene un error de acceso de escritura, en macbook, agregar la palabra sudo npm install -g firebase-tools
tem kiu..!! XD
me salta el siguiente error alguien sabra por que?
✔ functions:Finished running predeploy script.i functions: ensuring necessary APIs are enabled...✔ functions: all necessary APIs are enabled
i functions: preparing functions directory for uploading...i functions: packaged functions(41.64KB)for uploading
✔ functions: functions folder uploaded successfully
i functions: updating Node.js8functionhelloWorld(us-central1)...⚠ functions[helloWorld(us-central1)]:Deployment error.Failed to retrieve function source code
Functions deploy had errors with the following functions: helloWorld
Totry redeploying those functions,run: firebase deploy --only functions:helloWorld
Tocontinue deploying other features(such as database),run: firebase deploy --except functions
Error:Functions did not deploy properly.Having trouble?Try firebase deploy --help
:wave: ¡Hola!
¿Seguiste las instrucciones que te muestra la consola? Lo de correr el comando firebase deploy --only functions:helloWorld.
SI lo hiciste y aún así no funcionó, ¿puedes mostrarnos tu código? Tal vez así podamos encontrar el error. :muscle::wink::bug:
como puedo usar la sintaxis de ES6 (import, async/await) para escribir mis cloud functions? Estoy emilandolas sobre node 8 pero parece no ser suficiente ya que me tira error de sintaxis!
Como dice Andrés, puedes cambiar la versión de Node.js por una que soporte las features que necesitas. O también puedes usar babel para compilarlo todo para la versión que quieras usar. :wink:
Para los que les aparece el error de Error: Cloud Functions deployment requires the pay-as-you-go (Blaze) billing plan.
deben actualizar su metodo de pago de firebase a blaze con una tarjeta de credito, no se les cobrará nada a menos que superen los limites establecidos.
con razón ....
En que situaciones seria conveniente ampliar la memoria RAM? si al momento de subirla me da el uso minimo o no
Hola, debes ver el uso que tienes, en servidores normales, lo ideal es que solo se use el 70% de la memoria RAM, entonces si lo amplias tomando en cuenta eso, genial.
Al momento de subirla te la lo minimo. Cuanto subir?? depende de la cantidad de usuarios, de lo que hace la función, puedes realizar pruebas de rendimiento, ejemplo con Artillery y sacar conclusiones si es suficiente la RAM
El no explico los parámetros que se deben pasar para configurar tamaño de memoria y tiempo de espera de una función. Si alguien los necesita se los adjunto:
exports.helloWorld= functions.runWith({timeoutSeconds:300,memory:'1GB'}).https.onReques((request,response)=>{ response.send('Hello from Firebase')})
Error: Your project must be on the Blaze (pay-as-you-go) plan to complete this command. Required API artifactregistry.googleapis can't be enabled until the upgrade is complete. To upgrade.
Como lo puedo resolver ?
Buenas una pregunta, si depues del deploy , el cual se supone que se hizo de manera correcta, al ingresar al link que genera firebase me aparece "Error: Forbidden
Your client does not have permission to get URL /app from this server." Alguno sabe como arreglarlo? .Muchas gracias de antemano
Pregunta.Si esta inicializado el proyecto en android studio y luego voy a visual studio code. Toca volver a hacer la instalación de las tools de firebase?
No es necesario, las firebase tools que instalas desde NPM se guardan en un directorio llamado node_modules y no importa qué editor uses, ese directorio va a estar ahí.
Al hacer el deploy y acceder a la pagina siempre tengo el siguiente error:
Uncaught ReferenceError: require is not defined
Como puedo hacer para firebase acepte el require de modulos js
Hola!
Tal vez necesites pasar tu proyecto por un task runner o un bundler para utlizar babel y poder cambiar el tipo de módulos que acepta.
Tengo la siguiente falla:
There was an issue deploying your functions.Verify that your project has a GoogleAppEngine instance setup at https://console.cloud.google.com/appengine and try again.Ifthis issue persists, please contact support.! functions:UploadError:HTTPError:503,The service is currently unavailable.Error:HTTPError:503,The service is currently unavailable.
Seguí el link y me lleva a seleccionar un tipo de backend donde seleccione nodejs pero luego me pide información para facturación.
Tengo este mismo problema
Yo estoy obteniendo este error .. parece que es el linter .. pero no logro arreglarlo .. y es un proyecto al que no le he modificado nada.. 😕...
Buenas Tardes amigos de Platzi
Cuando ingreso el comando
npm install -g firebase-tools
me sale npm ERR!
Me aparece que para ejecutar este paso debo pagar la version Blaze
Like! Quiero Más Cursos Sobre Firebase Para La Web Y Si Se Puede Con El Mismo Muchachote De Este Curso Mejor!
año 2022- Hola compas si no les funciona cuando ejecuten el comando: firebase deploy --only functions
**Despues de buscar encontre en el scripts del package.json , un espacio despues y un punto. **