Firebase – це платформа для розвитку додатків, запущена в 2012 році і придбана Google через два роки. Спочатку Firebase був задуманий як база даних для додатків в режимі реального часу, але Google побачив його потенціал і вирішив додати до неї додаткові сервіси.

В даний час Firebase – це система BaaS (Backend as as Service), яка спрощує створення веб-та мобільних додатків з 18 сервісами. Компанії, що використовують послуги BaaS firebase, включають Accenture, Alibaba Travels, Stack, Twitch та Instacart, а також понад 2300 інших.

ПЕРЕВАГИ ВИКОРИСТАННЯ FIREBASE

‎Перша з послуг, пропонованих Firebase, була база даних в режимі реального часу, і вона залишається однією з найпривабливіших. ‎‎Бази даних Firebase в режимі реального часу‎‎ розміщуються в хмарі, зберігають дані у форматі JSON і синхронізуються в режимі реального часу з кожним підключеним до них клієнтом. Незалежно від того, чи використовуєте ви пакет SDK для iOS, 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

‎На панелі переходів ліворуч у розділі Розробка ‎‎ виберіть пункт ‎Realtime Database‎. Праворуч з’явиться кнопка ‎‎”Створити базу даних”‎‎. Натисніть на нього, щоб створити свою першу базу даних в Firebase.‎

Realtime Database

‎Потім потрібно вибрати один із кількох географічних параметрів розташування нової бази даних. Виберіть той, який найближче підходить для ваших користувачів. Це важливий аспект для мінімізації затримки вашого API, особливо для додатків у реальному часі.‎

Местоположение

‎Наступним кроком є настроювання основних правил безпеки для бази даних. Можна вибрати заблокований режим, а потім призначити права доступу за потреби або вибрати тестовий режим, який дозволяє всі операції читання та запису.‎

Безопасность

‎Для початку, щоб не ускладнювати собі життя налаштуваннями безпеки, можна вибрати тестовий режим. І ви можете налаштувати правила безпеки пізніше.‎

‎Після завершення налаштування бази даних відповідний API також буде додано до ‎‎розділу API та служб‎‎ консолі ‎‎Google Cloud Platform‎‎.‎


ПРОГРАМУВАННЯ FIREBASE API

На даний момент у вас вже є основні елементи вашого проекту, створені в консолі Firebase. Наступним кроком є написання API-коду. Для цього вам потрібно буде ініціалізувати хостинг Firebase і функції на вашому локальному комп’ютері. Ви можете встановити за допомогою:‎firebase-toolsnpm

npm install -g firebase-tools

‎Потім ви можете увійти та ініціалізувати проект за допомогою наступних команд:‎firebase

firebase login firebase init

‎З’явиться екран привітання, на якому Firebase вказує на папку, де буде збережено ваш проект, і з’явиться меню параметрів.‎

Меню параметров

‎У цьому меню виберіть ‎‎Функції та хостинг‎‎ (опція “Хостинг” дозволить вам мати власну URL-адресу для API). Потім виберіть додаток Firebase, створений раніше, зі списку, після чого ви повинні вибрати мову для використання. Для розробки веб-API можна вибрати ‎‎JavaScript‎‎.‎

Functions and Hosting

‎Якщо ви будете використовувати залежності пакетів, встановіть їх за допомогою в папці “Функції”. Після цього можна почати писати код для своїх функцій. Не забудьте включити пакети і разом з іншими пакетами, які вам потрібні:‎npmfirebase-functionsfirebase-admin

import * as functions from 'firebase-functions'; 
import * as admin from 'firebase-admin';

‎Щоб використовувати базу даних в режимі реального часу, необхідно вказати її URL-адресу під час ініціалізації ‎‎пакета SDK JavaScript‎‎. 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 CLI в терміналі буде відображати HTTP-URL-адреси кінцевих точок ваших функцій, які ви можете використовувати для виклику ваших 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 . ‎Щоб використовувати емулятор Firestore, ‎‎Java‎‎ повинна бути встановлена на вашому комп’ютері.‎

‎Коли ви викликаєте ‎‎емулятор Firestore‎‎, команда поверне URL-адресу, яка дозволить вам відкрити інтерфейс користувача Emulator Suite у вашому браузері. За замовчуванням ця URL-адреса буде‎ ‎ localhost: 4000‎, але на кожній машині вона може бути різною.‎

‎Ви також отримаєте повну URL-адресу вашої функції HTTP. Ця URL-адреса буде виглядати приблизно так:‎http://localhost:5001/apiproject-8753c/us-central1/itemQuery

‎Тільки він буде мати назву вашого проекту, назву вашої функції, а також може мати інший номер порту на вашому локальному комп’ютері.‎

Щоб перевірити функцію, скопіюйте URL-адресу, повернуту емулятором, додавши будь-які необхідні параметри (наприклад, ), і відкрийте її в новій вкладці браузера. Результати виконання API з’являться в інтерфейсі користувача Emulator Suite.‎?itemid = 1

‎На вкладці “Журнали” ви побачите нові журнали, які вказують на те, що функція була виконана. Якщо ваша функція генерує нові дані в базі даних Firestore, ви побачите їх на вкладці Firestore.‎itemQuery().


‎РОЗШИРЕННЯ API‎

‎Якщо ви хочете, щоб API, які ви розробляєте, стали популярними, Firebase також може допомогти в цьому. Не тільки тому, що це дозволяє швидше створювати додаток, забираючи багато роботи з налаштування та запуску серверних служб, але також допомагаючи вам позиціонувати свій продукт. Як це можливо? Просто тому, що додатки, пов’язані з Firebase, займають вище місце в рейтингу пошуку, ніж інші програми.‎

‎Також розглянемо API індексації додатків Firebase. Цей інструмент покращує рейтинг пошуку посилань на програми та допомагає користувачам знаходити потрібний вміст. Він також натискає кнопку “Встановити” після кнопки на домашній сторінці додатка, щоб зацікавлені користувачі могли використовувати ваш додаток лише одним клацанням миші.‎

‎На закінчення Firebase не тільки пропонує бекенд-сервіси, які значно прискорюють розробку власного API, але і допомагають просувати його і заробляти на ньому.‎