Firebase este o platformă de dezvoltare aplicații, apărută în 2012 și preluată de Google doi ani mai târziu. Inițial, Firebase era concepută ca o simplă bază de date pentru aplicații în timp real. Totuși, Google a sesizat potențialul său, adăugând ulterior o serie de servicii complementare.
În prezent, Firebase funcționează ca un sistem BaaS (backend ca serviciu), oferind 18 instrumente ce simplifică procesul de creare a aplicațiilor web și mobile. Printre companiile care se bazează pe serviciile Firebase BaaS se numără nume precum Accenture, Alibaba Travels, Stack, Twitch și Instacart, alături de peste 2.300 de alte organizații.
Avantajele utilizării Firebase
Serviciul de bază inițial al Firebase, baza de date în timp real, rămâne un punct forte al platformei. Bazele de date Firebase Real-time sunt găzduite în cloud, stocând informații în format JSON și sincronizându-se instantaneu cu fiecare client conectat. Indiferent de SDK-ul utilizat (iOS, Android sau JavaScript), toate aplicațiile ce comunică cu o bază de date Firebase Realtime accesează aceeași instanță, care este actualizată constant cu cele mai recente date.
Cloud Firestore reprezintă un alt serviciu Firebase valoros. Aceasta este o bază de date de tip NoSQL, concepută pentru a facilita stocarea, sincronizarea și interogarea datelor pentru aplicații mobile și web la scară globală. Abilitatea de a structura ierarhii pentru datele aferente și de a realiza interogări avansate permite exploatarea maximă a potențialului Cloud Firestore. Interogările sunt scalabile în funcție de dimensiunea rezultatelor, nu a setului de date, permițând aplicațiilor să se dezvolte încă de la început, fără a aștepta depășirea capacității inițiale.
Pe lângă serviciile de baze de date menționate, Firebase pune la dispoziție și servicii de găzduire, stocare de fișiere, funcții serverless (similare AWS Lambda) și multe altele.
Crearea unui API
Interfețele API oferă o modalitate eficientă de a pune la dispoziție servicii pentru utilizarea de către aplicații proprii sau terțe. Firebase vă permite să dezvoltați servicii personalizate care utilizează propriile resurse Firebase, eliminând complicațiile configurării unui backend separat. De exemplu, ați putea oferi acces la o bază de date Firebase în timp real pentru ca aplicații terțe să interogheze informații de la senzori industriali.
Pentru a crea un API în Firebase, accesați Consola Firebase și inițiați un proiect, dând clic pe „Adăugați proiect” și alocând un nume. Vi se va oferi opțiunea de a activa Google Analytics pentru proiect. Se recomandă acceptarea acestei opțiuni, deoarece veți beneficia de funcții precum testarea A/B și o varietate de rapoarte statistice generate de API.
După crearea proiectului, veți putea selecta serviciile Firebase pe care le va utiliza API-ul dvs. Pentru a ilustra acest proces, vom exemplifica modul de utilizare a serviciului de bază de date Firebase Realtime.
Configurarea unei baze de date în timp real în Firebase
În meniul lateral stânga, din secțiunea Dezvoltare, selectați Bază de date în timp real. Un buton „Creează o bază de date” va apărea în dreapta. Dați clic pe el pentru a crea prima bază de date în Firebase.
Veți fi nevoit să alegeți una dintre opțiunile de locație geografică pentru noua bază de date. Selectați locația cea mai apropiată de utilizatorii dvs. Acest aspect este important pentru reducerea latenței API-ului, în special în aplicațiile ce funcționează în timp real.
Următorul pas constă în configurarea regulilor de securitate pentru baza de date. Puteți opta pentru modul blocat, alocând ulterior permisiuni de acces, sau pentru modul de testare, care permite toate citirile și scrierile.
Pentru a simplifica configurarea inițială, puteți începe cu modul de testare. Puteți oricând adăuga reguli ulterior, pentru a configura securitatea mai granular.
Imediat ce ați configurat baza de date, API-ul corespunzător este activat în secțiunea API-uri și servicii din Google Cloud Platform.
Programarea API-ului Firebase
În acest punct, aveți deja elementele de bază ale proiectului configurate în consola Firebase. Următorul pas este să scrieți codul API. Pentru a face acest lucru, inițializați găzduirea și funcțiile Firebase pe calculatorul dvs. local. Puteți instala firebase-tools folosind npm:
npm install -g firebase-tools
Apoi vă puteți autentifica în Firebase și inițializa proiectul folosind următoarele comenzi:
firebase login firebase init
Va apărea un ecran de bun venit, care vă informează despre directorul în care va fi inițializat proiectul, și un meniu de opțiuni.
În meniul de opțiuni, selectați Funcții și găzduire (opțiunea de găzduire vă permite să atribuiți o adresă URL personalizată API-ului). Apoi alegeți aplicația Firebase pe care ați creat-o anterior, urmată de selecția limbajului de programare. Pentru dezvoltarea unui API web, puteți opta pentru JavaScript.
Dacă veți utiliza dependențe de pachet, instalați-le cu npm în directorul 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, alături de 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 atunci când inițializați SDK-ul JavaScript. Această adresă URL se găsește în secțiunea Bază de date în timp real din consola Firebase. O puteț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 cu cele corespunzătoare proiectului dvs:
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 API, este momentul implementării. Înainte de aceasta, este necesar să faceți modificări în firebase.json, adăugând liniile următoare, adaptate configurației proiectului dvs.:
"rewrites": [ { "source": "/api/v1/**", "function": "webApi" } ]
Următorul pas este implementarea. La prima implementare, trebuie să efectuați o implementare completă, executând comanda:
firebase deploy
La implementările ulterioare, veți putea implementa doar 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. Această adresă URL poate fi folosită pentru a apela 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 folosită pentru a apela o funcție de interogare a unui articol, transmițând 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 funcționează pe bază de plată în funcție de consum, conform paginii de prețuri Firebase. Este un serviciu post-facturare, ceea ce înseamnă că veți fi taxat pentru utilizarea serviciilor 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. Veți vedea un mesaj care vă informează că trebuie să vă abonați la planul Blaze dacă doriți să implementați în mediul de producție. În acest caz, puteți utiliza în continuare Firebase Local Emulation Suite pentru a construi și testa aplicații pe mașina locală, evitând implementarea în mediul de producție. Testarea locală este utilă pentru a evita costurile inutile în timpul dezvoltării aplicației, deoarece fiecare test poate genera costuri în contul dvs.
Testare locală și prototipare
Instrumentul Local Emulator Suite oferă o interfață grafică integrată, facilitând crearea de prototipuri și testarea aplicațiilor pe mașina locală.
Cu interfața grafică Emulator Suite, puteți testa designul bazei de date, fluxurile de lucru ale funcțiilor Cloud, analiza performanța serviciilor de backend și evalua modificările regulilor de securitate, printre altele. În esență, aveți la dispoziție un sandbox securizat pentru testarea funcționalităților API înainte de a le lansa în mediul de producție.
Pentru a emula funcțiile sau a testa aplicația local, rulați comanda firebase emulators:start. Pentru a putea folosi Firestore Emulator, este necesar să aveți Java instalat. Dacă nu îl aveți, îl puteți instala de aici.
La invocarea Firestore Emulator, comanda va afișa o adresă URL ce vă permite accesul la interfața grafică Emulator Suite din browser. În mod implicit, aceasta va fi localhost:4000, dar poate varia în funcție de configurarea computerului.
Veți primi, de asemenea, o adresă URL completă pentru funcția dvs. HTTP. Aceasta va avea un format similar cu:
http://localhost:5001/apiproject-8753c/us-central1/itemQuery
doar că va conține numele proiectului dvs., denumirea funcției și ar putea avea un număr de port diferit pe mașina locală.
Pentru a testa funcția, copiați URL-ul returnat de emulator, adăugând parametrii necesari (de ex. ?itemid=1) și introduceți-l într-o filă nouă a browserului. Rezultatele execuției API-ului vor apărea în interfața Emulator Suite.
În fila Jurnale, veți vedea noi intrări care indică faptul că funcția itemQuery() a fost executată. Dacă funcția generează date noi în baza de date Firestore, le veți vedea în fila Firestore.
Extinderea vizibilității API-ului
Dacă doriți ca API-urile dezvoltate să devină populare, Firebase vă poate ajuta și în acest sens. Platforma nu numai că vă ajută să dezvoltați aplicația mai rapid, prin eliminarea complexității configurării serviciilor de backend, dar vă sprijină și în poziționarea produsului. Aplicațiile asociate cu Firebase obțin un clasament mai bun în rezultatele căutărilor, comparativ cu alte aplicații.
Luați în considerare și API-ul de indexare a aplicațiilor Firebase. Acest instrument îmbunătățește clasamentul link-urilor către aplicație în rezultatele căutărilor, ajutând utilizatorii să găsească mai ușor conținutul dorit. De asemenea, plasează butonul Instalare imediat după butonul de pe pagina de start a aplicației, astfel încât utilizatorii interesați să devină utilizatori ai aplicației cu un singur clic.
În concluzie, Firebase vă oferă servicii de backend care accelerează semnificativ dezvoltarea API-urilor. În plus, după lansarea acestora, platforma vă ajută și la promovarea și monetizarea lor.