Jaka jest różnica między Cloud Functions a Firebase Functions?

86

Cloud Functions i Firebase Functions (lub „Cloud Functions for Firebase”) wyglądają tak samo. Proszę opisać przypadek użycia każdego.

Oba używają funkcji HTTP.

W funkcji w chmurze :

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

A w funkcjach Firebase :

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

Jaka jest różnica między nimi?

Muhammad Chhota
źródło
1
Termin Firebase to tak naprawdę Cloud Functions for Firebase , czyli po prostu Cloud Functions zintegrowane z Firebase Services.
AL.
2
Więc nie ma różnicy między nimi?
Muhammad Chhota
Chciałbym dodać prosty punkt, który nie odpowiada dokładnie na twoje pytanie. Możesz kodować w różnych językach (NodeJS, Python. Nadchodzi Heard Go) za pomocą Google Cloud Functions.
viggy28

Odpowiedzi:

159

Nie ma usługi o nazwie Funkcje Firebase.

Istnieją trzy oddzielne rzeczy:

  1. Funkcje Google Cloud , które pozwalają uruchamiać fragmenty kodu w infrastrukturze Google w odpowiedzi na zdarzenia.
  2. Cloud Functions for Firebase , który uruchamia Google Cloud Functions na podstawie zdarzeń w Firebase (takich jak zapisy w bazie danych lub pliku, tworzenie użytkowników itp.)
  3. Firebase SDK for Cloud Functions , który zawiera bibliotekę (myląco nazywaną firebase-functions), której używasz w kodzie funkcji do uzyskiwania dostępu do danych Firebase (takich jak migawka danych zapisanych w bazie danych)

Dlatego Firebase zapewnia (stosunkowo cienkie) opakowanie wokół Google Cloud Functions, aby ułatwić korzystanie z tego drugiego produktu i zintegrować go z Firebase. W tym sensie jest to podobne do tego, jak Firebase integruje Google Cloud Storage z „Cloud Storage for Firebase” (wcześniej znanym jako Firebase Storage).

Jeśli korzystasz z Google Cloud Platform bez Firebase, powinieneś użyć zwykłego Google Cloud Functions . Jeśli korzystasz z Firebase lub jesteś programistą mobilnym i interesujesz się Cloud Functions, powinieneś użyć Cloud Functions for Firebase .

Frank van Puffelen
źródło
1
Do Twojej wiadomości: narzędzia Firebase umożliwiają programistom dostęp do wszystkich wydarzeń w Google Cloud. Pakiet SDK „funkcje firebase” i interfejs wiersza polecenia Firebase współpracują ze sobą, umożliwiając programistom zarządzanie zestawem funkcji za pomocą prostego polecenia wdrażania - łatwe rozpoczęcie pracy, a jednocześnie pełny dostęp do Google Cloud Platform, gdy jest to potrzebne.
Ultrasaurus
Czy jednak cena nie jest inna? Korzystanie z funkcji Google Cloud Platform poza kontekstem Firebase daje mi 5 GB danych wychodzących każdego miesiąca za darmo. Wywoływanie funkcji GCP z poziomu kontekstu Firebase uniemożliwia dostęp do usług innych niż Google w warstwie bezpłatnej. Dostęp do sieci zewnętrznej jest dozwolony na poziomie 25 USD lub na poziomie Blaze (płatność na bieżąco), ale nawet na poziomie Blaze opłata wynosi 40 centów za milion wywołań, ale dzięki GCP pierwsze 2 miliony wywołań są bezpłatne, a potem 0,40 centa za milion.
mancini0
Działają na dokładnie tej samej infrastrukturze, więc nie ma żadnej różnicy w sposobie ich wykonywania. W abonamencie Blaze jest taki sam bezpłatny limit. Ze strony cennika : „W abonamencie Blaze Cloud Functions zapewnia bezterminową bezpłatną warstwę. Pierwsze 2 000 000 wywołań, 400 000 GB-s, 200 000 CPU-sec i 5 GB ruchu wychodzącego do Internetu jest udostępnianych bezpłatnie każdego miesiąca. Jesteś naliczana tylko za korzystanie po przekroczeniu tego bezpłatnego przydziału. "
Frank van Puffelen
Cloud Functions for Firebase nie obsługuje funkcji do napisania w Pythonie, czy mam rację? Na podstawie zdania "Będziesz potrzebować środowiska Node.js do pisania funkcji (...)"
JohnAndrews
Tak jest w dzisiejszych czasach: cloud.google.com/functions/docs/concepts/python-runtime
Frank van Puffelen
5

W Google Cloud Platform, GCP, znajduje się artykuł dotyczący tego pytania, Google Cloud Functions i Firebase .

Funkcje Google Cloud i Firebase

Google Cloud Functions to bezserwerowe rozwiązanie obliczeniowe Google do tworzenia aplikacji sterowanych zdarzeniami. Jest to wspólny produkt zespołu Google Cloud Platform i zespołu Firebase.

Dla programistów Google Cloud Platform , Funkcje Chmura służyć jako łącznej warstwy pozwalając na splot logiki pomiędzy Google Cloud Platform (GCP) usług poprzez słuchanie i reagowanie na zdarzenia.

Dla programistów Firebase , Funkcje Chmura Firebase zapewnia sposób rozszerzenia zachowanie Firebase i integracji Firebase wyposażony poprzez dodanie kodu po stronie serwera.

Oba rozwiązania zapewniają szybkie i niezawodne wykonywanie funkcji w pełni zarządzanym środowisku, w którym nie ma potrzeby martwić się o zarządzanie serwerami lub dostarczanie infrastruktury.

...

Cloud Functions for Firebase jest zoptymalizowany dla programistów Firebase:

  • Firebase SDK do konfigurowania funkcji za pomocą kodu
  • Zintegrowany z konsolą Firebase i interfejsem wiersza polecenia Firebase
  • Te same wyzwalacze, co Google Cloud Functions, a także reguły Firebase Realtime Database, Firebase Authentication i Firebase Analytics
Ronnie Royston
źródło
3

Jest dodatkowa różnica: Firebase Functions można zaimplementować tylko w JS lub Node.JS, podczas gdy Cloud Functions pozwala również na użycie Python i Go.

Istnieje również niewielka różnica w cenie, jeśli korzystasz z planu Spark. Sprawdź to https://firebase.google.com/pricing vs. https://cloud.google.com/functions/pricing, jeśli korzystasz z abonamentu Blaze, ceny są takie same.

Tak się składa, że ​​używam obu w moim projekcie Firebase.

Alexei Masterov
źródło