Qual é a diferença entre Cloud Functions e Firebase Functions?

89

Cloud Functions e Firebase Functions (ou "Cloud Functions para Firebase") têm a mesma aparência. Descreva o caso de uso de cada um.

Ambos usam funções HTTP.

No Cloud Functions :

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

E nas funções do Firebase :

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

Qual é a diferença entre eles?

Muhammad chhota
fonte
1
O termo para Firebase é, na verdade, Cloud Functions para Firebase , que é praticamente apenas Cloud Functions integrado aos serviços do Firebase.
AL.
2
Portanto, não há diferença entre os dois?
Muhammad chhota
Gostaria de adicionar um ponto simples que não responde exatamente à sua pergunta. Você pode codificar em diferentes linguagens (NodeJS, Python. Heard Go está chegando) usando o Google Cloud Functions.
viggy28

Respostas:

161

Não existe um produto denominado Firebase Functions.

Existem três coisas distintas:

  1. Google Cloud Functions , que permite que você execute snippets de código na infraestrutura do Google em resposta a eventos.
  2. Cloud Functions para Firebase , que aciona o Google Cloud Functions com base em eventos no Firebase (como gravações de banco de dados ou arquivo, criação de usuário etc.)
  3. Firebase SDK para Cloud Functions , que inclui uma biblioteca (chamada de maneira confusa firebase-functions) que você usa no código do Functions para acessar os dados do Firebase (como o instantâneo dos dados que foram gravados no banco de dados)

Portanto, o Firebase fornece um wrapper (relativamente fino) em torno do Google Cloud Functions para tornar o último produto mais fácil de usar e integrá-lo ao Firebase. Nesse sentido, é semelhante a como o Firebase integra o Google Cloud Storage ao "Cloud Storage for Firebase" (anteriormente conhecido como Firebase Storage).

Se estiver usando o Google Cloud Platform sem Firebase, você deve usar o Google Cloud Functions simples . Se você estiver no Firebase ou se for um desenvolvedor móvel interessado em Cloud Functions, deve usar o Cloud Functions para Firebase .

Frank van Puffelen
fonte
1
Para sua informação: as ferramentas do Firebase permitem que os desenvolvedores acessem todos os eventos do Google Cloud. O SDK "firebase-functions" e a Firebase CLI trabalham juntos para permitir que os desenvolvedores gerenciem um conjunto de funções com um comando simples de implantação - introdução fácil, enquanto você ainda tem acesso total ao Google Cloud Platform quando precisa.
Ultrasaurus
Os preços não são diferentes, entretanto? Usar as funções do Google Cloud Platform fora do contexto do Firebase me dá 5 GB de dados de saída todos os meses gratuitamente. Chamar funções do GCP de dentro do contexto do Firebase proíbe o acesso a serviços que não sejam do Google no nível gratuito. O acesso à rede externa é permitido no nível de $ 25 ou no nível Blaze (pague conforme o uso), mas mesmo no nível Blaze, você é cobrado 40 centavos por milhão de invocações, mas através do GCP, seus primeiros 2 milhões de invocações são gratuitos, e então são 0,40 centavos por milhão.
mancini0
Eles são executados exatamente na mesma infraestrutura, então não pode haver nenhuma diferença em como eles são executados. No plano Blaze, há a mesma cota gratuita. Na página de preços : "No plano Blaze, o Cloud Functions oferece um nível gratuito perpétuo. As primeiras 2.000.000 invocações, 400.000 GB-s, 200.000 CPU-s e 5 GB de tráfego de saída da Internet são fornecidos gratuitamente a cada mês. Você é cobrado apenas no uso após esta cota gratuita. "
Frank van Puffelen
O Cloud Functions para Firebase não oferece suporte às funções a serem escritas em python, certo? Com base na frase "Você precisará de um ambiente Node.js para escrever funções (...)"
JohnAndrews
5

O Google Cloud Platform, GCP, tem um artigo que aborda essa questão, Google Cloud Functions e Firebase .

Google Cloud Functions e Firebase

O Google Cloud Functions é a solução de computação sem servidor do Google para a criação de aplicativos orientados a eventos. É um produto conjunto entre a equipe do Google Cloud Platform e a equipe do Firebase.

Para desenvolvedores do Google Cloud Platform , Cloud Functions serve como uma camada conectiva, permitindo que você crie uma lógica entre os serviços do Google Cloud Platform (GCP) ouvindo e respondendo a eventos.

Para desenvolvedores do Firebase , Cloud Functions para Firebase oferece uma maneira de estender o comportamento do Firebase e integrar os recursos do Firebase por meio da adição de código do lado do servidor.

Ambas as soluções fornecem execução rápida e confiável de funções em um ambiente totalmente gerenciado, onde não há necessidade de se preocupar em gerenciar quaisquer servidores ou provisionar qualquer infraestrutura.

...

O Cloud Functions para Firebase é otimizado para desenvolvedores do Firebase:

  • SDK do Firebase para configurar suas funções por meio de código
  • Integrado com Firebase Console e Firebase CLI
  • Os mesmos acionadores do Google Cloud Functions, além dos acionadores do Firebase Realtime Database, Firebase Authentication e Firebase Analytics
Ronnie Royston
fonte
3

Há uma diferença adicional: o Firebase Functions só pode ser implementado em JS ou Node.JS, enquanto o Cloud Functions também permite o uso de Python e Go.

Também há uma pequena diferença em termos de preço, se você estiver no Plano Spark. Confira https://firebase.google.com/pricing vs. https://cloud.google.com/functions/pricing se você estiver no plano Blaze, o preço é o mesmo.

Acontece que uso ambos para meu projeto Firebase.

Alexei Masterov
fonte