В чем разница между облачными функциями и функциями Firebase?

89

Облачные функции и функции Firebase (или «Облачные функции для Firebase») выглядят одинаково. Опишите вариант использования каждого из них.

Оба используют функции HTTP.

В облачных функциях :

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

И в функциях Firebase :

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

В чем разница между ними?

Мухаммад чхота
источник
1
Термин для Firebase на самом деле - это облачные функции для Firebase , что в значительной степени представляет собой просто облачные функции, интегрированные с Firebase Services.
АЛ.
2
Значит, между ними нет разницы?
Мухаммад чхота
Хотел бы добавить простой момент, не совсем отвечающий на ваш вопрос. Вы можете писать код на разных языках (NodeJS, Python. Heard Go скоро) с помощью Google Cloud Functions.
viggy28

Ответы:

161

Нет продукта под названием Firebase Functions.

Есть три отдельные вещи:

  1. Облачные функции Google , которые позволяют запускать фрагменты кода в инфраструктуре Google в ответ на события.
  2. Облачные функции для Firebase , которые запускают облачные функции Google на основе событий в Firebase (таких как запись базы данных или файлов, создание пользователей и т. Д.)
  3. Firebase SDK для облачных функций , который включает в себя библиотеку (называемую нечетко firebase-functions), которую вы используете в своем коде функций для доступа к данным Firebase (например, к моментальному снимку данных, которые были записаны в базу данных)

Таким образом, Firebase предоставляет (относительно тонкую) оболочку вокруг Google Cloud Functions, чтобы упростить использование последнего продукта и интегрировать его с Firebase. В этом смысле это похоже на то, как Firebase интегрирует облачное хранилище Google в «облачное хранилище для Firebase» (ранее известное как хранилище Firebase).

Если вы используете Google Cloud Platform без Firebase, вам следует использовать простые функции Google Cloud . Если вы используете Firebase или являетесь мобильным разработчиком, интересующимся облачными функциями, вам следует использовать облачные функции для Firebase .

Франк ван Пуффелен
источник
1
К вашему сведению: инструменты Firebase позволяют разработчикам получать доступ ко всем событиям Google Cloud. SDK firebase-functions и Firebase CLI работают вместе, чтобы позволить разработчикам управлять набором функций с помощью простой команды развертывания - легко начать работу, при этом у вас по-прежнему есть полный доступ к Google Cloud Platform, когда он вам нужен.
Ultrasaurus
Однако не отличается ли цена? Использование функций Google Cloud Platform вне контекста Firebase дает мне 5 ГБ исходящих данных каждый месяц бесплатно. Вызов функций GCP из контекста Firebase запрещает доступ к службам, отличным от Google, на уровне бесплатного пользования. Внешний доступ к сети разрешен на уровне 25 долларов или на уровне Blaze (платите по мере использования), но даже на уровне Blaze с вас взимается 40 центов за миллион вызовов, но через GCP ваши первые 2 миллиона вызовов бесплатны, а затем - 0,40 цента за миллион.
mancini0
Они работают в одной и той же инфраструктуре, поэтому не может быть никакой разницы в том, как они работают. В плане Blaze есть такая же бесплатная квота. На странице с ценами : «В плане Blaze Cloud Functions предоставляет бессрочный уровень бесплатного пользования. Первые 2000000 вызовов, 400000 ГБ-сек, 200000 ЦП-секунд и 5 ГБ исходящего интернет-трафика предоставляются бесплатно каждый месяц. взимается только за использование сверх этого бесплатного выделения ".
Франк ван Пуффелен,
Облачные функции для Firebase не поддерживают функции, которые должны быть написаны на python, я прав? На основе предложения «Вам понадобится среда Node.js для написания функций (...)»
Джон Эндрюс
В настоящее время это работает: cloud.google.com/functions/docs/concepts/python-runtime
Фрэнк ван Пуффелен,
5

В Google Cloud Platform, GCP, есть статья, посвященная этому вопросу, Google Cloud Functions и Firebase .

Облачные функции Google и Firebase

Google Cloud Functions - это бессерверное вычислительное решение Google для создания приложений, управляемых событиями. Это совместный продукт команды Google Cloud Platform и команды Firebase.

Для разработчиков Google Cloud Platform : Cloud Functions служит в качестве соединительного слоя , позволяя вам сплести логику между Google Cloud Platform (GCP) услугами путем прослушивания и реагирования на события.

Для разработчиков Firebase : Cloud Functions for Firebase обеспечивает способ расширить поведение Firebase и интегрировать Firebase особенности путем добавления серверного кода.

Оба решения обеспечивают быстрое и надежное выполнение функций в полностью управляемой среде, где вам не нужно беспокоиться об управлении какими-либо серверами или предоставлении какой-либо инфраструктуры.

...

Cloud Functions for Firebase оптимизированы для разработчиков Firebase:

  • Firebase SDK для настройки ваших функций с помощью кода
  • Интегрирован с Firebase Console и Firebase CLI
  • Те же триггеры, что и Google Cloud Functions, плюс триггеры Firebase Realtime Database, Firebase Authentication и Firebase Analytics.
Ронни Ройстон
источник
3

Есть еще одно отличие: функции Firebase можно реализовать только на JS или Node.JS, а облачные функции также позволяют использовать Python и Go.

Существует также небольшая разница в том, как они оцениваются, если вы используете план Spark. Посмотрите https://firebase.google.com/pricing и https://cloud.google.com/functions/pricing, если вы используете план Blaze, цены такие же.

Я использую оба в своем проекте Firebase.

Алексей Мастеров
источник