de Nikhil Sridhar

Iată ce aș vrea să știu înainte de a începe să folosesc Firebase

O listă de avantaje și dezavantaje pe care ar trebui să le luați în considerare înainte de a alege Cloud Firestore ca bază de date

Iata ce as vrea sa stiu inainte de a incepe

În ultimii ani, Firebase a crescut ca o soluție de backend din ce în ce mai populară. Mai ales după lansarea Cloud Firestore. Firestore este o bază de date cloud flexibilă cu interogări expresive și actualizări în timp real. După dezvoltarea primei mele aplicații cu Cloud Firestore, am organizat o listă de avantaje și dezavantaje. Această listă vă va ajuta să alegeți dacă Firestore este baza de date pentru dvs.

Înainte de a începe, este imperativ să înțelegeți modelul de date al Cloud Firestore. Firestore stochează date în documente, organizate în colecții. Fiecare document conține un set de perechi cheie-valoare. Cloud Firestore este optimizat pentru stocarea colecțiilor mari de documente mici. Toate documentele trebuie stocate în colecții. Documentele pot conține sub-colecții și obiecte imbricate. Baltele pot include câmpuri primitive, cum ar fi șiruri sau obiecte complexe, cum ar fi liste.

Acum că înțelegeți elementele de bază, iată o listă de articole din Cloud Firestore care vă pot crea sau rupe aplicația.

Avantajul nr. 1: Tranzacții și scrieri în lot

Tratarea erorilor poate fi una dintre cele mai plictisitoare sarcini atunci când vine vorba de citirea și scrierea într-o bază de date. În unele situații, dacă apare o eroare în timp ce citiți sau scrieți într-o locație din baza de date, vă recomandăm să anulați întreaga operațiune. Aici intervin scrierile în lot și tranzacțiile.

Scrierile în lot sunt un set de operații de scriere efectuate atomic. Într-un set de operații atomice, fie toate operațiile reușesc, fie niciuna dintre ele. Dacă aplicația dvs. reușește să scrie date într-un document, dar nu reușește să scrie date într-un alt document, nu se efectuează niciuna dintre scrieri. O eroare este aruncată.

Tranzacțiile funcționează în mod similar. Sunt mai puternici, deoarece vă permit să citiți și să scrieți documente într-un mod atomic.

Scrierile în lot și tranzacțiile pot fi cel mai bine explicate printr-un exemplu. Cel mai ușor este să adaugi prieteni pe o platformă de socializare. Când utilizatorul A adaugă utilizatorul B ca prieten, doriți să scrieți atât documentul utilizatorului A, cât și documentul utilizatorului B pentru a semnifica că sunt prieteni. Cu toate acestea, dacă fie scrierea în documentul utilizatorului A, fie documentul utilizatorului B eșuează, doriți să anulați orice modificare și să aruncați o eroare. Scrierile în lot și tranzacțiile simplifică acest proces cu doar câteva linii de cod.

Avantajul nr. 2: invită

1611490569 531 Iata ce as vrea sa stiu inainte de a incepe

Firebase Invites este probabil cea mai puternică tehnică de îmbarcare, mai ales dacă aplicația dvs. rulează pe mai multe platforme (iOS, Android etc.). Vă permite solicitați utilizatorului actual dacă dorește să-și invite prietenii la aplicația dvs. Cu toate acestea, ceea ce este mai mult este că Firebase vă permite de fapt să creați un utilizator temporar pentru ca utilizatorul invitat să ofere utilizatorului actual cea mai bună experiență a clientului.

De exemplu, să spunem că construiți o aplicație similară cu Venmo. Această aplicație permite utilizatorilor să urmărească cheltuielile și să se stabilească în cele din urmă. Utilizatorul A vrea să plătească utilizatorul B, care în prezent nu are un cont. Folosind Invitații Firebase, puteți permite utilizatorului A să îl invite pe utilizator B. Apoi configurați un cont temporar pentru utilizatorul A pentru a urmări cheltuielile până când utilizatorul B acceptă invitația și își creează propriul cont. Invitațiile oferă recomandări de aplicații prin ambele e-mail și SMS. Este o modalitate excelentă de a dobândi noi utilizatori și de a-i menține pe utilizatorii actuali mai fericiți ca niciodată.

Firebase Dynamic Links permite cea mai bună experiență de integrare a utilizatorului. Aceste legături funcționează pe mai multe platforme. Acestea vă permit să oferiți o experiență personalizată în cadrul unei aplicații odată ce un utilizator deschide un anumit link. Dynamic Links este cel mai bine utilizat atunci când este integrat cu invitațiile Firebase.

Să luăm exemplul din avantajul anterior. Utilizatorul B, care a fost invitat în aplicația dvs. de către utilizatorul A, decide acum că dorește să creeze un cont pentru a vizualiza orice datorii pe care le are către utilizatorul A. Când utilizatorul B primește invitația prin e-mail și face clic pe linkul dinamic, el va fi direcționat către AppStore de unde vă va descărca aplicația. Apoi, când deschide aplicația și începe să se înregistreze, e-mailul său va fi deja completat datorită informații transmise de linkul dinamic.

Dezavantajul nr. 1: interogare după subcolecție

Una dintre cele mai mari dezamăgiri din Cloud Firestore este incapacitatea de a interoga documentele prin subcolecțiile lor. De exemplu, să spunem că aveți următoarea structură de date:

Colectie de utilizatori -> noier document -> colecție de prieteni ->; prietene document -> date despre acel prieten (nume, e-mail etc.)

În această structură, ar fi imposibil să aduci toți utilizatorii care au un prieten cu un anumit nume și e-mail. Firebase intenționează în cele din urmă să ofere o soluție. Deocamdată, se pare că singura soluție este înlocuirea colecțiilor secundare cu tablouri în care documentele pot fi interogate de.

Deși această soluție ar putea părea suficientă, nu este. Pe măsură ce aplicația dvs. crește, la fel pot crește matricele, afectând semnificativ performanța documentului de citire și scriere.

Dezavantajul nr. 2: interogarea după locație

1611490569 822 Iata ce as vrea sa stiu inainte de a incepe

În funcție de funcționalitatea aplicației dvs., acesta ar putea fi cel mai mare defect dintre toate. Deși Cloud Firestore oferă un tip de date despre locație, nu vă permite să interogați toate documentele pe o rază a unei locații date.

Să ne gândim că construiți o aplicație identică cu Uber. Când un utilizator se conectează la aplicație, doriți să preluați toate mașinile pe o anumită rază de locație a utilizatorului curent pentru a-l avertiza dacă există șoferi în apropiere. Această sarcină este imposibilă fără ajutorul bibliotecilor terțe.

Din fericire, dacă utilizați baza de date în timp real, Firebase vă recomandă acum să utilizați GeoFire bibliotecă pentru interogarea documentelor după locație. Cu toate acestea, dacă intenționați să utilizați Cloud Firestore, nu există nicio soluție recomandată.

Deși există câteva biblioteci care au încercat să rezolve această problemă precum GeoFirestore, Firebase nu le-a verificat încă ca sursă de încredere.

Această problemă va afecta cu siguranță pe oricine folosește Cloud Firestore, pentru nu vă permite să interogați documente prin „text incomplet”. Această problemă poate fi ilustrată cel mai bine printr-un exemplu.

Să presupunem că aplicația dvs. permite utilizatorilor să se împrietenească reciproc. Un utilizator introduce „Al” în încercarea de a-și căuta prietenul „Alex”. Doriți să preluați toți utilizatorii din baza de date al căror nume conține textul „Al” pentru a ajuta utilizatorul să-și restrângă căutarea. Această sarcină nu este posibilă numai prin Cloud Firestore. Algolia, un serviciu terț, este necesar pentru a implementa căutarea textului complet. Toate documentele trebuie încărcate în Algolia ca înregistrări. Aceste înregistrări pot fi apoi interogate prin text incomplet.

Pentru mai multe sfaturi, vă rugăm să fiți atent și urmați-mă. Dacă v-a plăcut acest articol, nu ezitați să țineți apăsat butonul de batere.