Як успішно створити API за допомогою Firebase?

| | 0 Comments| 8:43 AM
Categories:

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

Наразі Firebase — це система BaaS (backend as a service) із 18 службами для полегшення створення веб- та мобільних додатків. Серед компаній, які використовують сервіси Firebase BaaS, Accenture, Alibaba Travels, Stack, Twitch і Instacart, а також понад 2300 інших.

Переваги використання Firebase

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

  Як легко друкувати фотографії на вашому Mac

Після виконання команди розгортання Firebase CLI відображає 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 перед надсиланням у робоче середовище.

  Як відключити режим читання в Firefox

Щоб емулювати ваші функції або перевірити свою програму локально, запустіть емулятори firebase:start. Щоб використовувати емулятор Firestore, потрібно встановити Java. Якщо у вас його немає, ви можете встановити його з тут.

Коли ви викликаєте емулятор Firestore, команда поверне 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, але коли він запущений і запущений у світ, він також допомагає вам просувати його – і заробляти на цьому гроші.