Google Firestore je djelotvorna pomoć kod razvoja mobilnih i web aplikacija

Google Firestore je djelotvorna pomoć kod razvoja mobilnih i web aplikacija

Jedna od stvari koju mora sadržavati praktično svako ozbiljnije IT rješenje je nekakav oblik spremanja podataka. Bez obzira na to je li riječ o trivijalnom čuvanju najboljih rezultata upravo odigrane igre, ili složenom sustavu gdje se bilježe najrazličitiji podaci o ljudima, proizvodima i ostalim objektima.

Priprema web rješenja s pratećom bazom podataka u pozadini odavno je već dobro poznata stvar svim programerima. Svaki programski jezik predviđen za izradu web orijentiranih rješenja na serveru ima predviđenu izravnu podršku za pristup jednom ili više sustava za upravljanje bazama podataka, kao što su MySQL, Microsoft SQL Server ili neki drugi.

Kod mobilnih rješenja situacija je nešto složenija, jer u većini slučajeva nije moguće izravno koristiti neku od takvih „mainstream“ baza podataka. Umjesto toga na serveru treba pripremiti posebni sloj softverskih servisa kojima pristupa mobilna aplikacija preko interneta, a oni se brinu za čitanje i zapis podataka u bazu podataka. Sasvim sigurno prilično velika dodatna „komplikacija“ kod razvoja mobilnog rješenja s ugrađenom podrškom za korištenje baze podataka.

Slika01

Početna web adresa za pristup bazi Firestore

Zar ne bi bilo zgodno kad bi podrška za rad s bazom podataka s već pripremljenim servisima za pristup bazi bila automatski dostupna u mobilnim (ali i drugim vrstama) aplikacija? Odgovor je, naravno, potvrdan, a odaziva se na ime (Google) Firebase/Firestore. Objašnjenje razlike između navedena dva pojma slijedi malo kasnije.

Što je zapravo Firestore?

 Iako Firestore nije jedino rješenje takvog tipa, sasvim sigurno je jedno od najpoznatijih i najpopularnijih. Firestore omogućava programerima mobilnih (i ostalih vrsta) aplikacija jednostavno spremanje različitih vrsta podataka u bazu dokumenata, bez potrebe za pripremom posebnog sloja servisa za pristup bazi. Za sve to se unaprijed pobrinuo Google.

Da bi stvar bila još ljepša, ako za razvoj aplikacija koristite alate poput Fluttera, vrlo jednostavno prebacujete izvođenje vaše aplikacije između „prave“ mobilne aplikacije, punokrvnog web rješenja, ili čak desktop aplikacije s pristupom istoj Firestore bazi. Naravno, takvo prebacivanje ne ide uvijek baš 100% bez malo „podešavanja“, ali je sve skupa mnogo jednostavnije nego da imate neku „mainstream“ bazu podataka i razvijate vlastiti sloj servisa kao vezu između baze i vlastite aplikacije.

Slika02

Priprema novog projekta: Prvi korak u korištenju vlastite baze podataka

Ne treba zaboraviti ni činjenicu da se Firestore baza nalazi na Googleovim serverima, što automatski znači da je riječ o vrlo pouzdanom rješenju s „uzornom skalabilnosti“. Ako vam skalabilnost zatreba zbog naglog širenja aplikacije među potencijalnim korisnicima. Zlobnici bi rekli da ima i izravno ugrađenu mogućnošću čitanja svih podataka od strane Googlea, ali to je već priča za neku drugu (GDPR) priliku.

Priprema novog projekta

Sad kad smo objasnili što je to Firestore, prelazimo na glavni dio – uvod u korištenje. Kao i svaka druga baza podataka, tako se i Firestore može koristiti na različite načine. Osim ranije spomenutog korištenja iz razvojnog alata poput Fluttera (i drugih sličnih razvojnih alata), bazi se može pristupiti iz različitih aplikacija (npr. dobro poznate Googleove web aplikacije). Također, svaka baza podataka koja drži do sebe mora uključivati vlastito korisničko sučelje za pregled i administraciju podataka.

Zbog tako šarolikih mogućnosti u korištenju baze Firestore, predstavit ćemo je u više nastavaka serijala. Danas započinjemo sa zadnjom od nabrojanih mogućnosti – posebnog web sučelja za pregled i administraciju podataka.

Početna web adresa za korištenje baze je ovdje. Osim pristupa sučelju za upravljanje bazom podataka, na ovoj adresi su dostupni i brojni prateći materijali poput uputa, cijena korištenje za velika komercijalna rješenja, popis referentnih tvrki sa softverskim rješenjima zasnovanim na bazi Firestore te druge slične stvari.

Prvi korak za normalno korištenje baze je prijava na korisničko sučelje. Sasvim sigurno ne želite da drugi korisnici interneta gledaju vaše podatke bez autentikacije. Najjednostavniji način prijave je korištenje nekog Googleovim korisničkih imena, kojeg ste već i ranije koristili za druge stvari.

Slika03

Google Analytics: Omogućeno je automatsko dodavanje u projekt

Nakon prijave na sustav preostalo je da stvarno počnete s korištenjem baze pomoću klika na link „Get Started“, ili izravnim prelaskom na web adresu. Ako do sada još niste koristili Firestore, onda priprema novog projekta predstavlja nazaobilazni prvi korak. Kao što to prikazuje prateća slika uz tekst, potrebno je izabrati nekakav naziv projekta, a onda sustav na njega automatski dodaje kraći nastavak, kako bi projekt zaista dobio svoju jedinstvenu oznaku.

U sljedećem koraku pripreme moguće je u projekt automatski uključiti podršku za Google Analytics. Ako izaberete takvo uključivanje, onda slijedi još jedan korak – konfiguriranje odgovarajućeg korisničkog računa. Budući da se u okviru ovog priloga nećemo detaljnije baviti analitikom korištenja, isključite navedenu mogućnost te dovršite pripremu novog projekta.

Nakon nekoliko trenutaka potrebnih da Googleova infrastruktura odradi sve potrebne zadatke za pripremu novog projekta, pojavit će po početna stanica projekta. Na njoj su prikazane sve dostupne mogućnosti tijekom korištenja, kao što je pregled i upravljanje samom bazom podataka, ali i stvari poput upravljanja autentikacijom, dodatnim proširenjima, te naprednim stvarima poput strojnog učenja.

Slika05

Priprema nove baze: Na početnoj stranici projekta potrebno je izabrati Firestore Database > Create database

Na ovom mjestu bi već trebala biti jasna razlika između pojmova Firebase i Firestore. Pojam projekta (Firebase) ima mnogo kompleksnije značenje od samog pojma baze podataka (Firestore). Osim brojnih dodatnih mogućnosti, u okviru Firebase projekta može se čak koristiti i nešto drugačija vrsta baze podataka (RealTime). Ali, to je već tema za neku drugu priliku. Ovaj put ograničit ćemo se samo na bazu podataka tipa Firestore, a od ostalih dijelova koristit ćemo samo minimum potreban da u suradnji s bazom podataka proradi naša mobilna aplikacija. Ili da neka druga aplikacija pristupi podacima spremljenim u bazi.

Slika06

Cijena korištenja: Usporedba besplatnog i plaćenog korištenja Firebase sustava

Priprema nove baze podataka

Za pripremu nove Firestore baze na početnoj stranici projekta potrebno je izabrati opciju Firestore Database u lijevom izborniku, te nakon toga Create database. Prije nego što nastavimo dalje, skrenimo malo na jedan drugi važan detalj u vezi s korištenjem Firebase /Firestore tehnologije, a to je cijena korištenja.

Detaljni podaci o cijeni korištenja Firebase sustava mogu se pronaći na adresi. Tu se vidi da su resursi obuhvaćeni besplatnim korištenjem baze sasvim dovoljni za razvoj različitih vrsta rješenja. To uključuje mogućnost unosa sasvim dovoljne količine podataka za početno testiranje sustava. Ako vaše rješenje premaši predviđene besplatne resurse, onda na raspolaganju imate sasvim dovoljan broj korisnika koji će vam donositi neki oblik zarade ili privući ulagače. Nakon toga ni prelazak na korištenje komercijalne verzije više nije nikakav bauk.Slika07

Produkcijska ili test baza: Početni odabir kod pripreme nove baze

Prilikom pripreme nove Firestore baze podataka potrebno je odgovoriti na dva dodatna pitanja. Prvo je način pripreme baze – treba li korištenje biti organizirano u produkcijskom ili u test načinu korištenja. Ako se izabere produkcijski način korištenja, ona je potrebno posvetiti dodatnu pažnju sigurnosnim postavkama. Kod upoznavanja s Firestore tehnologijom jednostavnije je da izabere test način korištenja, te tako izbjegnete dodatne komplikacije oko sigurnosti. U test načinu rada sljedećih 30 dana je znatno pojednostavljen pristup podacima sa sigurnosnog stanovišta. Nakon tog perioda možete ponovo odlučiti kako želite nastaviti s korištenjem baze.

Slika08

Lokacija za spremanje podataka: Na raspolaganju je nekoliko različitih mogućnosti

Kod pripreme nove Firestore baze potrebno je izabrati i fizičku lokaciju u okviru Google infrastrukture za spremanje vaših podataka. Budući da u prvom projektu tek upoznajete novi sustav, to i nije presudno pitanje. Jednostavno izaberite ponuđenu vrijednost i nastavite dalje, što će rezultirati dovršetkom pripreme vaše prve Firestore baze.

I unos prvih podataka

Ako ste do sada u praksi imali priliku koristiti samo već više desetljeća prevladajući relacijski model baza podataka, onda će vam korištenje Firestore baze u prvi trenutak možda biti pomalo čudno. Umjesto da prvo pripremite čitav niz naredbi (u relacijskoj terminologiji poznatih kao DDL - Data Definition Language) za definiranje svi potrebnih objekata za prihvat i obradu podataka (npr. tablice, pogledi, pohranjene procedure), u ovom slučaju je dovoljno samo pripremiti novu kolekciju podataka. Nakon toga odmah možete započeti s dodavanjem dokumenata u kolekciju.

Slika09

Dodavanje elementa u kolekciju: Dijelovi dokumenta definiraju se kod spremanja

Dokumenti zapisani u neku kolekciju ne moraju biti jednaki po svojim svojstvima. To je u praksi vrlo česta situacija s kojima se teško „izboriti“ u klasičnim relacijskim bazama. Na primjer, u nekakvoj kolekciji s podacima o opremi u uredu, osim naziva i cijene za računalo želimo zabilježiti vrstu procesora ili količinu memorije. Kod pisača treba zabilježiti veličinu papira ili vrstu ispisa (crno bijelo / boja).

Praktično jedini obavezni podatak neophodan za svaki dokument u kolekciji je Document ID. Mora ga sadržavati svaki dokument u kolekciji, a njegova vrijednost mora biti jedinstvena za svaki dokument. Jedinstvenost podatka za Document ID možemo osigurati sami u vlastitoj aplikaciji, ili možemo prepustiti Firestore sustavu da to odradi sam. Sve podatke moguće je promijeniti od dokumenta do dokumenta. Čak je dozvoljeno da svaki dokument ima svoje vlastite podkolekcije svojstava, pa su zato mogućnosti u spremanju podataka praktično neograničene.

Slika10

Dodatni dokumenti: U istu kolekciju mogu se spremati različite vrste dokumenata

Za probu, nakon čitanja današnjeg teksta možete sami probati pripremiti jedan ili više primjera vlastitih kolekcije i usporediti je li takav način spremanja podataka fleksibilniji od onog što ste ranije koristili u relacijskim bazama podataka.

Takva fleksibilnost u spremanju podataka ima i svoj problematični dio, a to je kasnije jednostavno pronalaženje željenog podatka. Ako ne možete znati kakve će sve podatke korisnik spremiti u Firestore bazu, kako ćete kasnije pripremiti smisleno pretraživanje kolekcije? Srećom, u pravilu se podaci u bazu spremaju preko vaše vlastite aplikacije, tako da ipak sadržavate kontrolu nad time što se događa s podacima.

Slika11

Dodatna pravila: Na korištenje kolekcije mogu se postaviti različita pravila

Na vlastitu kolekciju podataka možete postaviti dodatne indekse, kako bi ubrzali pretraživanje podataka. U principu je to vrlo slično kao i kod relacijskih baza podataka. Osim indeksa, moguće je definirati dodatna pravila za spremanje podataka u kolekciju. Ako ste prilikom pripreme Firestore baze izabrali test način korištenja, onda je automatski pripremljeno jedno takvo pravilo zaduženo za parametre sigurnosti podataka u početnom periodu od 30 dana. Web sučelje Firestore baze može prikazati i vrlo detaljne statističke podatke o korištenju baze podataka. Jedino je problem što odmah nakon pripreme nove baze, nema baš puno toga novoga za pregled.

Slika12

Pregled korištenja: Na raspolaganju je i vrlo detaljna statistika korištenja baze podataka

 

Ocijeni sadržaj
(0 glasova)

// možda će vas zanimati

Newsletter prijava


Kako izgleda naš posljednji newsletter pogledajte na ovom linku.

Copyright © by: VIDI-TO d.o.o. Sva prava pridržana.