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
  • Firestore Database
  • 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 3 (odovzdávanie v MSTeams) 55b

    Vytvorte aplikáciu ktorá spĺňa nasledujúce požiadavky

  • Integrácia prvého zadania
  • Integrácia druhého zadania (roomDb)

  • Minimálne 6 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
  • 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.

  • © 2023 Tomáš Adam