Cum să construiți cu succes un API cu Firebase?

Firebase este o platformă de dezvoltare a aplicațiilor lansată în 2012 și achiziționată de Google doi ani mai târziu. La începuturile sale, Firebase a fost gândit doar ca o bază de date pentru aplicații în timp real, dar Google și-a văzut potențialul și a decis să-i adauge servicii suplimentare.

În prezent, Firebase este un sistem BaaS (backend as a service) cu 18 servicii pentru a facilita crearea de aplicații web și mobile. Printre companiile care folosesc serviciile Firebase BaaS se numără Accenture, Alibaba Travels, Stack, Twitch și Instacart, împreună cu alte peste 2.300 de altele.

Beneficiile utilizării Firebase

Primul dintre serviciile oferite de Firebase a fost baza de date în timp real și rămâne unul dintre cele mai mari atracții ale sale. Bazele de date Firebase Real-time sunt găzduite în cloud, stochând date în format JSON și sincronizându-se în timp real cu fiecare client conectat la acestea. Indiferent dacă utilizează SDK-ul iOS, SDK-ul Android sau SDK-ul JavaScript, toate aplicațiile conectate la o bază de date Firebase Realtime partajează o singură instanță a bazei de date, ținută mereu la zi cu cele mai recente date.

Cloud Firestore este un alt serviciu Firebase interesant. Este o bază de date de documente NoSQL concepută pentru a facilita stocarea datelor, sincronizarea și interogarea pentru aplicații mobile și web la scară globală. Crearea de ierarhii pentru stocarea datelor aferente și interogări expresive pentru a prelua date permite realizarea întregului potențial al Cloud Firestore. La rândul lor, interogările se scalează în funcție de dimensiunea rezultatelor, mai degrabă decât de dimensiunea setului de date. Acest lucru permite aplicațiilor să se scaleze de la început fără a aștepta până la momentul în care nevoile depășesc capacitatea.

Pe lângă serviciile de baze de date menționate mai sus, Firebase oferă și servicii de găzduire, stocare fișiere, funcții (în stil AWS Lambda), printre multe alte lucruri.

Crearea unui API

API-urile sunt o modalitate de a oferi servicii pentru utilizarea aplicațiilor proprii sau terțe. Firebase vă permite să furnizați servicii personalizate care, la rândul lor, folosesc propriile servicii Firebase, fără a avea probleme de a configura un backend pentru aceste servicii. Ați putea, de exemplu, să oferiți acces la o bază de date Firebase în timp real pentru aplicații terță parte pentru a interoga informațiile colectate de senzorii industriali.

Primul pas în crearea unui API în Firebase este să accesați Consola Firebase și adăugați un proiect făcând clic pe „Adăugați proiect” și dând un nume noului proiect. Google vă va oferi opțiunea de a activa Google Analytics pentru noul dvs. proiect. Este recomandat să acceptați această recomandare, deoarece veți obține beneficii precum testarea A/B și o mare varietate de rapoarte statistice din API-ul dvs.

  Vizualizați imaginile stocate în cache din toate browserele web de pe computerul dvs. într-un singur loc

După ce ați creat proiectul, veți putea selecta serviciile Firebase pe care le va folosi API-ul dvs. Pentru a ilustra această sarcină, vom vedea cum să folosim serviciul de bază de date Firebase Realtime.

Configurarea unei baze de date în timp real în Firebase

În bara de navigare din stânga, în interiorul secțiunii Dezvoltare, faceți clic pe Bază de date în timp real. Un buton „Creează o bază de date” va apărea în partea dreaptă. Faceți clic pe el pentru a crea prima bază de date în Firebase.

În continuare, va trebui să alegeți între mai multe opțiuni de locație geografică pentru noua dvs. bază de date. Selectați-l pe cel mai apropiat de utilizatorii dvs. Acesta este un aspect important pentru a minimiza latența API-ului dvs., în special în aplicațiile în timp real.

Următorul pas este să configurați regulile de bază de securitate pentru baza de date. Puteți opta pentru modul blocat și apoi alocați permisiuni de acces după cum este necesar sau puteți opta pentru modul de testare, care permite toate citirile și scrierile.

Puteți începe cu opțiunea modului de testare pentru a nu complica setările de securitate la început. Puteți crea oricând reguli mai târziu pentru a seta configurația de securitate cu o mai mare granularitate.

De îndată ce terminați de configurat baza de date, API-ul corespunzător este activat și în secțiunea API-uri și servicii a consolei dvs. personale din Google Cloud Platform.

Programarea API-ului Firebase

În acest moment, aveți deja elementele de bază ale proiectului dvs. configurate în consola Firebase. Următorul pas este să scrieți codul API. Pentru a face acest lucru, va trebui să inițializați găzduirea și funcțiile Firebase pe computerul local. Puteți instala firebase-tools folosind npm:

npm install -g firebase-tools

Apoi vă puteți conecta la Firebase și vă puteți inițializa proiectul cu următoarele comenzi:

firebase login firebase init

Va fi afișat un ecran de bun venit în care Firebase vă informează despre folderul în care va fi inițializat proiectul dvs. și va apărea un meniu de opțiuni.

În acel meniu, selectați Funcții și găzduire (opțiunea de găzduire vă va permite să aveți o adresă URL personalizată pentru API-ul pe care îl veți dezvolta). Apoi alegeți din listă aplicația Firebase pe care ați creat-o mai devreme, după care trebuie să selectați limba de utilizat. Pentru a dezvolta un API web, puteți opta pentru JavaScript.

  3 aplicații ușoare pentru a te transforma în videoclipuri și GIF-uri

Dacă veți folosi dependențe de pachet, instalați-le cu npm în folderul de funcții. Apoi puteți începe să scrieți codul pentru funcțiile dvs. Nu uitați să includeți pachetele firebase-functions și firebase-admin, împreună cu orice alte pachete de care aveți nevoie:

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

Pentru a utiliza baza de date în timp real, trebuie să specificați adresa URL a acesteia atunci când inițializați SDK-ul JavaScript. Adresa URL se află în secțiunea Bază de date în timp real a consolei Firebase. Îl poți recunoaște după formatul său:

https://<database-name>.<region>.firebasedatabase.app

Puteți utiliza următorul fragment pentru a inițializa SDK-ul, înlocuind datele care corespund obiectului de configurare al proiectului:

var config = {
  apiKey: "apiKey",
  authDomain: "projectId.firebaseapp.com",
  databaseURL: "https://databaseName.firebaseio.com",
  storageBucket: "bucket.appspot.com"
};
firebase.initializeApp(config);
var database = firebase.database();

După ce ați scris codul funcției dvs. API, este timpul să implementați. Dar înainte de a face acest lucru, va trebui să faceți câteva modificări în firebase.json, adăugând următoarele linii, modificate în funcție de configurația proiectului dvs.:

"rewrites": [
     {
       "source": "/api/v1/**",
       "function": "webApi"
     }
]

Următorul pas este implementarea. Prima dată trebuie să faceți o implementare completă, executând comanda:

firebase deploy

În implementările ulterioare, veți putea implementa numai funcțiile, folosind parametrul –only functions.

După executarea comenzii de implementare, CLI Firebase afișează adresa URL a punctelor terminale HTTP ale funcțiilor dvs. în terminal, pe care o puteți utiliza pentru a vă invoca API-urile dintr-o aplicație web. Adresa URL conține ID-ul proiectului și o regiune pentru funcția HTTP. De exemplu, următoarea adresă URL poate fi utilizată pentru a apela o funcție de interogare a unui articol, pasând-o itemid=1 ca parametru:

https://us-central1-apiproject-8753c.cloudfunctions.net/itemQuery?itemid=1

Pentru a executa funcția, deschideți URL-ul cu parametrii corespunzători într-un browser.

Rețineți că implementarea în mediul de producție necesită un abonament la planul Firebase Blaze, care este plata pe măsură, după cum puteți citi pe pagina de prețuri Firebase. Este un serviciu post-facturare, ceea ce înseamnă că sunteți facturat pentru utilizarea dvs. la sfârșitul fiecărei luni.

Dacă nu aveți un abonament Blaze, comanda deploy nu va afișa adresa URL a API-ului dvs. În schimb, veți vedea un mesaj care vă informează că trebuie să vă abonați la planul Blaze dacă doriți să vă implementați în mediul de rulare. În acest caz, puteți utiliza în continuare Firebase Local Emulation Suite pentru a construi și testa aplicații pe mașina dvs. locală, în loc să le implementați în mediul de producție Firebase. Testarea locală este utilă pentru a evita costurile inutile în timpul dezvoltării aplicației, deoarece fiecare rulare de testare poate genera taxe în contul dvs.

  Cum să anulați abonamentul Sirius XM

Testare locală și prototipare

Instrumentul Local Emulator Suite oferă o interfață de utilizator integrată care face ca prototiparea să fie ușoară și utilă pentru testarea aplicațiilor pe mașina dvs. locală.

Cu interfața de utilizator Emulator Suite, puteți testa designul bazei de date, fluxurile de lucru Cloud Functions, puteți analiza performanța serviciilor de backend și puteți evalua modificările regulilor de securitate, printre alte sarcini. Este practic un sandbox securizat pentru a vă testa funcționalitatea API înainte de a o trimite într-un mediu de producție.

Pentru a vă emula funcțiile sau a testa aplicația local, rulați firebase emulators:start. Trebuie să aveți Java instalat pentru a putea folosi Firestore Emulator. Dacă nu îl aveți, îl puteți instala de la Aici.

Când invocați Firestore Emulator, comanda va returna o adresă URL care vă va permite să deschideți interfața de utilizator Emulator Suite în browser. În mod implicit, această adresă URL va fi localhost:4000, dar poate varia pe fiecare computer.

Veți primi, de asemenea, o adresă URL completă pentru funcția dvs. HTTP. Această adresă URL va arăta similar cu:

http://localhost:5001/apiproject-8753c/us-central1/itemQuery

numai că va avea numele proiectului dvs., numele funcției dvs. și ar putea avea, de asemenea, un număr de port diferit pe mașina dvs. locală.

Pentru a testa funcția, copiați URL-ul returnat de emulator, adăugând orice parametri necesari (ex. ?itemid=1) și introduceți-l într-o nouă filă a browserului dumneavoastră. Rezultatele execuției API-ului vor apărea în interfața de utilizare Emulator Suite.

În fila Jurnale, veți vedea jurnale noi care indică faptul că a fost executată funcția itemQuery(). Dacă funcția dvs. generează date noi în baza de date Firestore, le veți vedea în fila Firestore.

Obține mai multă expunere pentru API-ul tău

Dacă doriți ca API-urile pe care le dezvoltați să devină populare, Firebase vă poate ajuta și cu asta. Nu numai pentru că vă permite să vă construiți aplicația mai rapid, eliminând multă muncă de a pune în funcțiune serviciile de backend, ci și ajutându-vă cu poziționarea produsului. Cum este posibil? Pur și simplu pentru că aplicațiile asociate cu Firebase se clasează mai bine în clasamentele de căutare decât alte aplicații.

De asemenea, luați în considerare API-ul de indexare a aplicațiilor Firebase. Acest instrument îmbunătățește clasamentul de căutare a link-urilor aplicației și ajută utilizatorii să găsească conținutul dorit. De asemenea, plasează butonul Instalare după butonul de pe pagina de pornire a aplicației, astfel încât utilizatorii interesați să fie la doar un clic distanță de a deveni utilizatori ai aplicației dvs.

În concluzie, Firebase nu numai că vă oferă servicii de backend care accelerează dramatic dezvoltarea API-ului dvs., dar odată ce acesta este pus în funcțiune și expus lumii, vă ajută și să îl promovați și să câștigați bani din el.