Как да изградите успешно API с Firebase?

Firebase е платформа за разработка на приложения, стартирана през 2012 г. и придобита от Google две години по-късно. В началото Firebase се смяташе само за база данни за приложения в реално време, но Google видя потенциала му и реши да добави допълнителни услуги към него.

В момента Firebase е BaaS (бекенд като услуга) система с 18 услуги за улесняване на създаването на уеб и мобилни приложения. Сред компаниите, използващи BaaS услугите на Firebase, са Accenture, Alibaba Travels, Stack, Twitch и Instacart, заедно с повече от 2300 други.

Ползи от използването на Firebase

Първата от услугите, предлагани от Firebase, беше нейната база данни в реално време и тя остава едно от най-големите привличания. Базите данни в реално време на Firebase се хостват в облака, съхраняват данни във формат 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.

  Internet Security 2018 с 63% отстъпка (Валиден на 6 декември)

След като създадете своя проект, ще можете да изберете услугите на 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 адресът се намира в секцията База данни в реално време на конзолата на 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.

  Как да активирате регистрацията на присъстващи за срещи в Zoom

След изпълнение на командата за разгръщане, 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. Локалното тестване е полезно за избягване на ненужни разходи по време на разработката на приложение, тъй като всяко тестово изпълнение може да генерира такси за вашия акаунт.

  Изградете своето богатство с приложението M1 Finance

Локално тестване и създаване на прототипи

Инструментът Local Emulator Suite предлага интегриран потребителски интерфейс, който прави прототипирането лесно и полезно за тестване на вашите приложения на вашата локална машина.

С потребителския интерфейс на Emulator Suite можете да тествате дизайна на вашата база данни, вашите работни потоци в облачните функции, да анализирате ефективността на бекенд услугите и да оценявате промените в правилата за сигурност, наред с други задачи. По същество това е сигурна пясъчна среда за тестване на вашата API функционалност, преди да я изпратите в производствена среда.

За да емулирате вашите функции или да тествате вашето приложение локално, стартирайте firebase emulators:start. Трябва да имате инсталирана Java, за да можете да използвате емулатора на Firestore. Ако го нямате, можете да го инсталирате от тук.

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