Как успешно создать API с помощью Firebase?
Опубликовано: 2021-09-07Firebase - это платформа для разработки приложений, запущенная в 2012 году и приобретенная Google двумя годами позже. Изначально Firebase задумывалась как база данных для приложений реального времени, но Google увидел ее потенциал и решил добавить к ней дополнительные сервисы.
В настоящее время Firebase представляет собой систему BaaS (серверная часть как услуга) с 18 службами для облегчения создания веб-приложений и мобильных приложений. Среди компаний, использующих услуги BaaS Firebase, - Accenture, Alibaba Travels, Stack, Twitch и Instacart, а также более 2300 других.
Преимущества использования Firebase
Первой из услуг, предлагаемых Firebase, была база данных в реальном времени, и она остается одной из самых привлекательных. Базы данных Firebase Real-time размещаются в облаке, хранят данные в формате JSON и синхронизируются в реальном времени с каждым подключенным к ним клиентом. Независимо от того, используете ли вы iOS SDK, Android SDK или JavaScript SDK, все приложения, подключенные к базе данных Firebase Realtime, совместно используют один экземпляр базы данных, всегда обновленный с последними данными.
Cloud Firestore - еще один интересный сервис Firebase. Это база данных документов NoSQL, предназначенная для облегчения хранения, синхронизации и выполнения запросов для мобильных и веб-приложений в глобальном масштабе. Создание иерархий для хранения связанных данных и выразительных запросов для получения данных позволяет полностью реализовать потенциал Cloud Firestore. В свою очередь, запросы масштабируются в зависимости от размера результатов, а не от размера набора данных. Это позволяет приложениям масштабироваться с самого начала, не дожидаясь момента, когда потребности превысят емкость.
В дополнение к вышеупомянутым службам баз данных Firebase также предлагает услуги хостинга, хранилища файлов, функции (в стиле AWS Lambda) и многое другое.
Создание API
API-интерфейсы - это способ предоставления услуг для использования вашими собственными или сторонними приложениями. Firebase позволяет вам предоставлять настраиваемые службы, которые, в свою очередь, используют собственные службы Firebase, без необходимости настраивать серверную часть для этих служб. Вы можете, например, предложить доступ к базе данных Firebase в реальном времени для сторонних приложений для запроса информации, собираемой промышленными датчиками.
Первым шагом в создании API в Firebase является доступ к консоли Firebase и добавление проекта, нажав «Добавить проект» и присвоив новому проекту имя. Google предоставит вам возможность включить Google Analytics для вашего нового проекта. Рекомендуется принять эту рекомендацию, так как вы получите такие преимущества, как A / B-тестирование и широкий спектр статистических отчетов с помощью вашего API.
После создания проекта вы сможете выбрать службы Firebase, которые будет использовать ваш API. Чтобы проиллюстрировать эту задачу, мы увидим, как использовать службу базы данных Firebase Realtime.
Настройка базы данных в реальном времени в Firebase
На панели навигации слева в разделе «Разработка» щелкните «База данных в реальном времени». Справа появится кнопка «Создать базу данных». Нажмите на нее, чтобы создать свою первую базу данных в Firebase.

Затем вам нужно будет выбрать один из нескольких вариантов географического местоположения для вашей новой базы данных. Выберите тот, который ближе всего к вашим пользователям. Это важный аспект для минимизации задержки вашего API, особенно в приложениях реального времени.

Следующим шагом является настройка основных правил безопасности для вашей базы данных. Вы можете выбрать заблокированный режим, а затем назначить разрешения на доступ по мере необходимости или выбрать тестовый режим, который разрешает все операции чтения и записи.

Вы можете начать с тестового режима, чтобы не усложнять настройки безопасности вначале. Вы всегда можете создать правила позже, чтобы настроить конфигурацию безопасности с большей детализацией.
Как только вы закончите настройку своей базы данных, соответствующий API также будет включен в разделе API и служб вашей персональной консоли в Google Cloud Platform.
Программирование Firebase API
На данный момент у вас уже есть основные элементы вашего проекта, настроенные в консоли Firebase. Следующим шагом будет написание кода API. Для этого вам нужно будет инициализировать хостинг и функции Firebase на вашем локальном компьютере. Вы можете установить firebase-tools с помощью npm:
npm install -g firebase-toolsЗатем вы можете войти в firebase и инициализировать свой проект с помощью следующих команд:
firebase login firebase initОтобразится экран приветствия, в котором Firebase информирует вас о папке, в которой будет инициализирован ваш проект, и появится меню параметров.

В этом меню выберите «Функции и хостинг» (опция «Хостинг» позволит вам иметь собственный URL-адрес для API, который вы будете разрабатывать). Затем выберите из списка приложение Firebase, которое вы создали ранее, после чего вы должны выбрать язык для использования. Для разработки веб-API вы можете выбрать JavaScript.

Если вы будете использовать зависимости пакетов, установите их с помощью npm внутри папки функций. Затем вы можете начать писать код для своих функций. Не забудьте включить пакеты firebase-functions и firebase-admin вместе с любыми другими пакетами, которые вам нужны:
import * as functions from 'firebase-functions'; import * as admin from 'firebase-admin';Чтобы использовать базу данных в реальном времени, вы должны указать ее URL при инициализации вашего JavaScript SDK. URL-адрес находится в разделе Realtime Database консоли Firebase. Вы можете узнать его по формату:

https://<database-name>.<region>.firebasedatabase.appВы можете использовать следующий фрагмент для инициализации вашего SDK, заменяя данные, соответствующие объекту конфигурации вашего проекта:
var config = { apiKey: "apiKey", authDomain: "projectId.firebaseapp.com", databaseURL: "https://databaseName.firebaseio.com", storageBucket: "bucket.appspot.com" }; firebase.initializeApp(config); var database = firebase.database();После того, как вы написали код своей функции API, пора приступить к развертыванию. Но перед этим вам нужно будет внести некоторые изменения в firebase.json, добавив следующие строки, измененные в соответствии с конфигурацией вашего проекта:
"rewrites": [ { "source": "/api/v1/**", "function": "webApi" } ]Следующий шаг - развертывание. В первый раз вы должны выполнить полное развертывание, выполнив команду:
firebase deployПри последующих развертываниях вы сможете развертывать только функции, используя параметр –only functions.
После выполнения команды развертывания интерфейс командной строки Firebase отображает URL-адреса конечных точек HTTP ваших функций в терминале, которые вы можете использовать для вызова ваших API-интерфейсов из веб-приложения. URL-адрес содержит идентификатор вашего проекта и регион для функции HTTP. Например, следующий URL-адрес можно использовать для вызова функции запроса элемента, передав его itemid = 1 в качестве параметра:
https://us-central1-apiproject-8753c.cloudfunctions.net/itemQuery?itemid=1Чтобы выполнить функцию, откройте URL-адрес с соответствующими параметрами в браузере.
Обратите внимание, что для развертывания в производственной среде требуется подписка на план Firebase Blaze с оплатой по мере использования, как вы можете прочитать на странице цен на Firebase. Это услуга после выставления счетов, что означает, что вам выставляется счет за использование в конце каждого месяца.
Если у вас нет подписки на Blaze, команда развертывания не отобразит ваш URL-адрес API. Вместо этого вы увидите сообщение, информирующее вас о том, что вы должны подписаться на план Blaze, если вы хотите выполнить развертывание в среде выполнения. В этом случае вы все равно можете использовать Firebase Local Emulation Suite для создания и тестирования приложений на вашем локальном компьютере вместо их развертывания в производственной среде Firebase. Локальное тестирование полезно, чтобы избежать ненужных затрат во время разработки приложения, поскольку каждый запуск теста может приводить к расходам на вашем счете.
Локальное тестирование и прототипирование
Инструмент Local Emulator Suite предлагает интегрированный пользовательский интерфейс, который делает создание прототипов простым и полезным для тестирования ваших приложений на локальном компьютере.
С помощью пользовательского интерфейса Emulator Suite вы можете среди прочего тестировать проекты своей базы данных, рабочие процессы облачных функций, анализировать производительность серверных служб и оценивать изменения в правилах безопасности. По сути, это безопасная песочница для проверки функциональности вашего API перед отправкой в производственную среду.
Чтобы эмулировать свои функции или протестировать приложение локально, запустите эмуляторы firebase: start. У вас должна быть установлена Java, чтобы использовать Firestore Emulator. Если у вас его нет, вы можете установить его отсюда.
Когда вы вызываете Firestore Emulator, команда вернет URL-адрес, который позволит вам открыть пользовательский интерфейс Emulator Suite в вашем браузере. По умолчанию этот URL-адрес будет localhost: 4000, но он может отличаться на каждой машине.
Вы также получите полный URL-адрес своей функции HTTP. Этот URL будет выглядеть примерно так:
http://localhost:5001/apiproject-8753c/us-central1/itemQueryтолько он будет иметь имя вашего проекта, имя вашей функции, а также может иметь другой номер порта на вашем локальном компьютере.
Чтобы протестировать функцию, скопируйте URL-адрес, возвращаемый эмулятором, добавив все необходимые параметры (например,? Itemid = 1), и введите его на новой вкладке вашего браузера. Результаты выполнения API появятся в пользовательском интерфейсе Emulator Suite.
На вкладке «Журналы» вы увидите новые журналы, указывающие, что функция itemQuery () была выполнена. Если ваша функция генерирует новые данные в базе данных Firestore, вы увидите их на вкладке Firestore.
Расширение возможностей вашего API
Если вы хотите, чтобы разрабатываемые вами API стали популярными, Firebase тоже может вам в этом помочь. Не только потому, что это позволяет вам быстрее создавать приложение, снимая много работы по настройке и запуску серверных сервисов, но также помогая вам с позиционированием вашего продукта. Как такое возможно? Просто потому, что приложения, связанные с Firebase, занимают более высокие позиции в поисковом рейтинге, чем другие приложения.
Также примите во внимание API индексирования приложений Firebase. Этот инструмент улучшает поисковый рейтинг ссылок приложений и помогает пользователям находить желаемый контент. Он также помещает кнопку «Установить» после кнопки на главной странице вашего приложения, чтобы заинтересованные пользователи могли всего лишь одним щелчком мыши стать пользователями вашего приложения.
В заключение, Firebase не только предлагает вам серверные службы, которые значительно ускоряют разработку вашего API, но и после того, как он запущен и открыт для всего мира, он также помогает вам продвигать его - и зарабатывать на этом деньги.
