Cvičenie 13 - Cloudové služby a zdieľané úložiska dát 2
Cieľom trinásteho cvičenia je ozrejmiť si prácu s textovými databázami služby Firebase, a vytvorenie jednoduchej aplikácie.
Firebase ako databáza
Ponúka 2 typy noSQL databáz, ktoré púdporujú offline support, tj. vykonané zmeny v offline sa ukladajú do cache a synchronizujú pri prechode do online režimu.
Realtime Database
- Ukladanie dát a synchronizácia v reálnom čase.
- Dáta ukladá v jednom veľkom JSON strome.
- Stabilná databáza s prijateľnou latenciou.
- Neprehľadnosť pri veľkom množstve dát.
Firestore Database
- Dáta organizuje hierarchicky v kolekciách.
- Dáta sú ukladané cez viacere, multiregionálne dátové centrá.
- Automatické škálovanie s limitom približne 1 milión súbežných pripojení a 10 000 zápisov za sekundu.
Firebase Realtime Database
V prvom kroku prejdeme v konzole Firebasu na tab Realtime Database a stlačíme tlačidlo Create Database
Nastavíme Rules
Následne vytvoríme nový projekt a importujeme Firebase
Pridáme závislosti do Gradle súboru projektu (project-level)
buildscript {
dependencies {
classpath 'com.google.gms:google-services:4.3.14'
}
}
plugins {
id 'com.android.application' version '7.3.1' apply false
id 'com.android.library' version '7.3.1' apply false
}
Rovnako pridáme závislosti do Gradle súboru aplikácie (app-level)
plugins{
id 'com.android.application'
id 'com.google.gms.google-services'
}
...
dependencies {
implementation 'com.google.firebase:firebase-database:20.1.0'
...
}
Dáta môžme následne jednoducho zapisovať napríklad takto:
Tieto dáta vieme čítať 2 spôsobmi. Realtime:
Alebo jednorázovo:
Firestore Database
V prvom kroku prejdeme v konzole Firebasu na tab Firestore Database a stlačíme tlačidlo Create Database
Nastavíme Rules
Pridáme závislosti do Gradle súboru projektu (app-level)
dependencies {
implementation 'com.google.firebase:firebase-firestore'
...
}
Následne naplníme databázu testovacími dátami
K týmto dátam môžeme následne pristupovať napríklad takto:
Queries
Ku kolekcii môžeme pristupovať aj zložitejšími dopytmi:
V prípade ak chceme zoradiť výsledky:
Zadanie 2 (odovzdávanie v MSTeams) 65b
Vytvorte aplikáciu ktorá spĺňa nasledujúce požiadavky
Integrácia prvého zadania (roomDb)
Minimálne 8 zmysluplných prepojených aktivít (aspoň 1x recycler view)
Integrácia 1 API služby
Integrácia loginu + dalšej autentifikačnej služby (GitHub, Twitter, Google..)
Integrácia Firestore + Realtime + Storage databáz
Body za kreativitu a vizuálne prevedenie: 10b
Výsledné zadanie vygenerujte ako apk a otestujte v službe TestLab.
Hodnotí sa iba originálny a spustiteľný kód.