¿Cuál es la diferencia entre Cloud Functions y Firebase Functions?

85

Cloud Functions y Firebase Functions (o "Cloud Functions para Firebase") tienen el mismo aspecto. Describe el caso de uso de cada uno.

Ambos usan funciones HTTP.

En las funciones de la nube :

exports.helloHttp = function helloHttp (req, res) {
  res.send(`Hello ${req.body.name || 'World'}!`);
};

Y en las funciones de Firebase :

exports.helloWorld = functions.https.onRequest((request, response) => {
  response.send("Hello from Firebase!");
});

¿Cuál es la diferencia entre estos?

Muhammad chhota
fuente
1
El término para Firebase es en realidad Cloud Functions para Firebase , que es prácticamente solo Cloud Functions integrado con Firebase Services.
AL.
2
¿Entonces no hay diferencia entre ambos?
Muhammad chhota
Me gustaría agregar un punto simple que no responde exactamente a su pregunta. Puede codificar en diferentes idiomas (NodeJS, Python. Heard Go está por llegar) usando Google Cloud Functions.
viggy28

Respuestas:

158

No hay ningún producto llamado Funciones de Firebase.

Hay tres cosas distintas:

  1. Funciones de Google Cloud , que le permiten ejecutar fragmentos de código en la infraestructura de Google en respuesta a eventos.
  2. Cloud Functions para Firebase , que activa Google Cloud Functions en función de eventos en Firebase (como escrituras de bases de datos o archivos, creación de usuarios, etc.)
  3. Firebase SDK para Cloud Functions , que incluye una biblioteca (llamada confusamente firebase-functions) que usas en tu código de Functions para acceder a los datos de Firebase (como la instantánea de los datos que se escribieron en la base de datos)

Entonces, Firebase proporciona una envoltura (relativamente delgada) alrededor de Google Cloud Functions, para hacer que este último producto sea más fácil de usar e integrarlo con Firebase. En ese sentido, es similar a cómo Firebase integra Google Cloud Storage en "Cloud Storage para Firebase" (anteriormente conocido como Firebase Storage).

Si está utilizando Google Cloud Platform sin Firebase, entonces debería utilizar Google Cloud Functions sin formato . Si estás en Firebase o si eres un desarrollador móvil interesado en Cloud Functions, debes usar Cloud Functions para Firebase .

Frank van Puffelen
fuente
1
Para su información: las herramientas de Firebase permiten a los desarrolladores acceder a todos los eventos de Google Cloud. El SDK de "firebase-functions" y Firebase CLI trabajan juntos para permitir que los desarrolladores administren un conjunto de funciones con un simple comando de implementación: un comienzo fácil, mientras todavía tienes acceso completo a Google Cloud Platform cuando lo necesitas.
Ultrasaurus
Sin embargo, ¿no es diferente el precio? El uso de funciones de Google Cloud Platform fuera del contexto de Firebase me brinda 5 GB de datos salientes cada mes de forma gratuita. Llamar a funciones de GCP desde el contexto de Firebase prohíbe el acceso a servicios que no son de Google en el nivel gratuito. El acceso a redes externas está permitido en el nivel de $ 25, o en el nivel Blaze (pago por uso), pero incluso en el nivel Blaze, se le cobran 40 centavos por millón de invocaciones, pero a través de GCP, sus primeros 2 millones de invocaciones son gratis. y luego son .40 centavos por millón.
mancini0
Se ejecutan exactamente en la misma infraestructura, por lo que no puede haber ninguna diferencia en cómo se ejecutan. En el plan Blaze, existe la misma cuota gratuita. De la página de precios : "En el plan Blaze, Cloud Functions proporciona un nivel gratuito perpetuo. Las primeras 2.000.000 de invocaciones, 400.000 GB por segundo, 200.000 CPU por segundo y 5 GB de tráfico de salida de Internet se proporcionan de forma gratuita cada mes. solo se cobra por el uso que supere esta asignación gratuita ".
Frank van Puffelen
Cloud Functions para Firebase no admite las funciones que se escribirán en Python, ¿verdad? Basado en la oración "Necesitará un entorno Node.js para escribir funciones (...)"
JohnAndrews
Lo hace hoy en día: cloud.google.com/functions/docs/concepts/python-runtime
Frank van Puffelen
5

Google Cloud Platform, GCP, tiene un artículo que aborda esta pregunta, Google Cloud Functions y Firebase .

Google Cloud Functions y Firebase

Google Cloud Functions es la solución informática sin servidor de Google para crear aplicaciones impulsadas por eventos. Es un producto conjunto entre el equipo de Google Cloud Platform y el equipo de Firebase.

Para los desarrolladores de Google Cloud Platform , Cloud Functions sirve como una capa de conexión que le permite tejer la lógica entre los servicios de Google Cloud Platform (GCP) escuchando y respondiendo a eventos.

Para los desarrolladores de Firebase , Cloud Functions para Firebase proporciona una forma de ampliar el comportamiento de Firebase e integrar las funciones de Firebase mediante la adición de código del lado del servidor.

Ambas soluciones brindan una ejecución rápida y confiable de funciones en un entorno completamente administrado donde no es necesario que se preocupe por administrar servidores o aprovisionar infraestructura.

...

Cloud Functions para Firebase está optimizado para desarrolladores de Firebase:

  • Firebase SDK para configurar sus funciones a través de código
  • Integrado con Firebase Console y Firebase CLI
  • Los mismos activadores que Google Cloud Functions, además de los activadores de Firebase Realtime Database, Firebase Authentication y Firebase Analytics
Ronnie Royston
fuente
3

Hay una diferencia adicional: Firebase Functions solo se puede implementar en JS o Node.JS, mientras que Cloud Functions también permite el uso de Python y Go.

También hay una pequeña diferencia en cuanto al precio de los mismos, si está en el Plan Spark. Mira esto https://firebase.google.com/pricing vs. https://cloud.google.com/functions/pricing si estás en el plan Blaze, el precio es el mismo.

Yo uso ambos para mi proyecto de Firebase.

Alexei Masterov
fuente