Realtime vs Cloud Firestore: ce bază de date Firebase să alegeți
Publicat: 2018-10-12Istoricul se întoarce pe baza de date Firebase nu prea mult dincolo. Înființată ca o platformă de dezvoltare mobilă și web, Firebase a luat ființă în 2011 și apoi în 2014 a fost achiziționată de gigantul tehnologic Google și soarta sa s-a schimbat.
Trecând peste istoria evoluției Firebase, în decurs de un an de la achiziția sa de către Google, a fost fuzionat cu Divshot și de atunci s-a extins pentru a deveni o platformă unificată pentru dezvoltatorii de telefonie mobilă.
Firebase se integrează acum cu diverse alte servicii Google pentru a oferi dezvoltatorilor produse și o scară mai largă. De fapt, beneficiile pe care le oferă fac din Firebase pentru startup -uri un proces în tendințe.
Deci, ce este baza de date Firebase? Firebase este un BaaS, adică Backend ca serviciu. Folosind produsele oferite de Firebase, nu doar dezvoltatorii de telefonie mobilă pot crea aplicații de înaltă calitate. Google a lansat câteva funcții noi și pentru utilizatorii web Firebase.
Există două produse Firebase care fac posibilă construirea tuturor aplicațiilor pe care tocmai le-am menționat. În timp real și Cloud Firestore.
Realtime este produsul bine stabilit al bazei de date Firebase de la Google, iar Cloud Firestore, deși promite tehnologii mai bune, este încă în stadiul de testare beta.
Conform Google :
Baza de date în timp real este baza de date originală a Firebase. Este o soluție eficientă și cu latență scăzută pentru o aplicație mobilă care necesită stări sincronizate între clienți în timp real.
Cloud Firestore este noua bază de date emblematică a Firebase pentru dezvoltarea de aplicații mobile . Îmbunătățește succesele bazei de date în timp real cu un model de date nou, mai intuitiv. Cloud Firestore oferă, de asemenea, interogări mai bogate, mai rapide și se scalează mai bine decât baza de date în timp real.
Înainte de a ajunge la proprietățile individuale ale bazei de date în timp real și ale Cloud Firestore, să aruncăm o privire la care sunt avantajele și dezavantajele utilizării bazei de date Firebase pentru următorul dvs. proiect:
Avantajele bazei de date Firebase:
Dacă ne uităm la lista de motive, de ce ar trebui să folosim baza de date Firebase ca bază de date unică pentru toată dezvoltarea de aplicații mobile și web , vom vedea de ce Firebase db a devenit un succes atât de mare în industria dezvoltării aplicațiilor mobile.
- Migrare ușoară a datelor – Evoluțiile recente au oferit dezvoltatorilor instrumentele pentru a migra cu ușurință datele.
- Nu sunt necesare cunoștințe suplimentare – sunt necesare aproape zero cunoștințe despre devOps sau administratorul de sistem pentru a funcționa în Firebase db.
- Validarea diferitelor tipuri de date – Chiar dacă structura bazei de date Firebase este fără schemă, are încă capacitatea de bază de a valida diferite tipuri de date.
- Instrument unic – Este un instrument atotcuprinzător și singurul de care aveți neapărat nevoie pentru backend-ul unei aplicații mobile mici.
- Mai ușor de utilizat – Nivelul de dificultate al utilizării este puțin peste medie, dar este mai ușor decât majoritatea celorlalte sisteme atunci când vine vorba de integrarea cu analiza și monitorizarea accidentelor.
- Utilizare gratuită – Este gratuit în faza inițială, astfel încât dezvoltatorii care îl încearcă pentru prima dată nu trebuie să-și facă griji cu privire la realizarea unei investiții inițiale mari
- Biblioteci bogate de coduri – Toate bibliotecile de cod din limbajele de programare sunt similare și bine întreținute și pentru noii veniți.
- Structura de date JSON - Structura de date este JSON care se potrivește perfect cu JavaScript UI.
- Dezvoltare rapidă – Obținerea unei aplicații făcute de la zero este foarte rapidă – autentificare, e-mail, versiune, găzduire, monitorizare, DevOps, timp de funcționare.
- Streaming ușor – Funcționarea în timp real sau actualizările în flux sunt foarte ușoare.
Să comparăm acum baza de date în timp real și Cloud Firestore pentru a înțelege mai clar când să folosim care. Cloud firestore este încă în stadiul de testare beta și arată și funcționează într-un mod mai promițător decât baza de date în timp real. În această comparație, vom vedea cum diferă cele două baze de date una de cealaltă și cine câștigă baza de date în timp real vs firestore cloud.
Model de date
- Baza de date în timp real stochează date ca un singur arbore JSON mare, ceea ce face foarte ușor să stocați date simple, dar datele complexe sau ierarhice sunt mai greu de organizat la scară.
- Cloud Firestore , pe de altă parte, stochează date sub formă de documente care sunt organizate în colecții. În acest sens, stocarea datelor simple este similară cu JSON și este stocată în documente. Întrucât, datele complexe sau ierarhice nu sunt mai ușor de organizat la scară cu utilizarea subcolecțiilor din documente. Și, în general, necesită o denormalizare mai mică și o aplatizare a datelor.
Asistență în timp real și offline
- Baza de date în timp real oferă suport offline numai pentru clienții mobili Android și iOS.
- Cloud Firestore , pe de altă parte, oferă suport offline și pentru clienții Android, iOS și web.
Interogarea
- Baza de date în timp real oferă interogări profunde cu funcționalitate limitată de sortare și filtrare în care dezvoltatorii pot fie sorta, fie filtra pe o proprietate într-o singură interogare. Și toate interogările sunt profunde în mod implicit, adică returnează întotdeauna întregul subarbor.
- Cloud Firestore indexează interogarea cu sortare și filtrare compusă, unde dezvoltatorii pot filtra și combina filtrarea și sortarea pe o proprietate într-o singură interogare. De asemenea, este posibil să scrieți interogări superficiale pentru subcolecții, adică dezvoltatorii pot interoga într-un document în loc de o întreagă colecție sau un întreg document. Nu numai asta, dar interogările sunt indexate implicit, înseamnă că performanța interogării este proporțională cu dimensiunea setului de rezultate și nu cu setul de date.
Tranzacții
- În baza de date în timp real , există operațiuni de bază de scriere și tranzacție. Scrierea datelor funcționează ca o operațiune individuală, iar Tranzacțiile necesită un apel invers de finalizare în SDK-urile native.
- Cloud Firestore permite operațiunile de scriere și tranzacție Atomic. Se grupează operațiunile și le finalizează automat. De asemenea, tranzacțiile se repetă automat până când sunt finalizate.
Performanță și fiabilitate
- Baza de date în timp real este un produs matur. Are stabilitatea unui produs adevărat încercat și testat de mai multe ori. De asemenea, are o latență foarte scăzută, așa că este o opțiune bună pentru sincronizarea frecventă a stării. Deși, bazele de date sunt limitate la disponibilitatea zonală într-o singură regiune.
- Performanța Cloud Firestore nu poate fi măsurată încă, deoarece este încă în stadiul beta. Și stabilitatea în produsul beta nu este aceeași cu cea a unui produs lansat complet. Dar în ceea ce privește fiabilitatea, Cloud Firestore găzduiește toate datele dumneavoastră în mai multe centre de date din diferite regiuni, asigurând scalabilitate globală și fiabilitate puternică. În teorie, ori de câte ori Cloud Firestore iese din versiunea beta, acesta va avea o fiabilitate mai puternică decât baza de date în timp real.
Scalabilitate
- În baza de date în timp real , scalarea necesită sharding. Pentru a spune simplu, scalați la aproximativ 100.000 de conexiuni simultane și 1000 de scrieri/secundă într-o singură bază de date și, mai mult, necesită împărțirea datelor în mai multe baze de date.
- Când Cloud Firestore iese din versiunea beta, scalarea acestuia va fi automată, iar dezvoltatorii nu vor trebui să-și împărtășească datele în mai multe instanțe.
Securitate
- Baza de date în timp real are reguli în cascadă care necesită validare separată. Regulile bazei de date Firebase sunt singurele opțiuni de securitate aici, iar dezvoltatorii trebuie să valideze datele separat folosind regula „validare”.
- Cloud Firestore are o securitate mai simplă și mai puternică pentru SDK-uri mobile, web și server care utilizează Identity and Access Management (IAM). Validarea datelor are loc și automat. De asemenea, regulile pot constrânge interogările, adică dacă rezultatele unei interogări pot conține date la care dezvoltatorul nu are acces, întreaga interogare eșuează.
Prețuri
- Baza de date în timp real taxează doar pentru lățime de bandă și stocare, dar la un preț mai mare.
- Cloud Firestore , pe de altă parte, taxează în primul rând operațiunile efectuate în baza ta de date (Citire, scriere, ștergere) și la o rată mai mică, lățime de bandă și stocare. De asemenea, acceptă limitele zilnice de cheltuieli pentru proiectele Google App Engine.
Încă vă întrebați cum funcționează firebase? Să derulăm înapoi un rezumat a ceea ce am știut în articolul de mai sus.
Când să utilizați baza de date în timp real:
- Dacă datele dumneavoastră sunt simple și nu complexe sau ierarhice
- Dacă trebuie să scalați sub 100.000 de conexiuni simultane, 1000 scrieri/secundă într-o singură bază de date
- Când aveți nevoie de o bază de date care taxează pentru lățimea de bandă și stocarea totală și nu operațiunile individuale efectuate.
Când să utilizați baza de date Cloud Firestore:
- Dacă datele dumneavoastră sunt complexe sau ierarhice
- Dacă datele dvs. cresc peste 100.000 de conexiuni simultane
- Dacă aveți nevoie de o limită de cheltuieli mai precisă și de o bază de date care se debitează în principal pe 1 sunt PicCollage, Fabulous, Shazam și Skyscanner și suntem cu toții de acord că rulează cu succes.
În concluzie, modelele Firebase db le merge bine. Firebase în timp real rulează cu succes de ani de zile, iar anul trecut, odată cu lansarea versiunii beta a Cloud Firestore, se găsesc lucruri mai bune pentru dezvoltatorii de aplicații mobile și companiile de dezvoltare de aplicații.