Cvičenie 12 - Cloudové služby a zdieľané úložiska dát 1
Cieľom dvanásteho cvičenia je ozrejmiť si prácu so službou Firebase, autentifikáciou používateľa a Storage úložiskom dát.
Google Firebase
Kombinuje v sebe množstvo užitočných funkcií a nástrojov, ktoré pomáhajú vyvíjať, testovať (virtuálne prostredie Test Lab) a vylepšovať aplikácie (Android, iOS, Web).
Obsahuje prepracovanú analytiku, hosting, úložisko (storage), real time databázu a nástroje, ktoré zjednodušujú prihlasovanie používateľov a crash reporting.
Analytické nástroje vo Firebase ponukajú okrem informácií v realnom čase, aj prístup k množstvu dát popisujúcich používateľov a ich interakciu s aplikáciou.
Integrácia služby Firebase
V prvom kroku vytvoríme nový projekt na stránke firebase.google.com/
Následne registrujeme našu aplikáciu na tabe: Project Overview -> Ikona Androidu, kde postupujeme podľa návodu.
V ďalšom kroku stiahneme konfiguračný súbor google-services.json a uložíme ho do súboru app
Pridáme závislosti do Gradle súboru projektu (project-level)
buildscript{
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.google.gms:google-services:4.3.14'
}
}
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 platform('com.google.firebase:firebase-bom:31.1.0')
implementation 'com.google.firebase:firebase-analytics'
...
}
Následne stlačíme Continue to console a skontrolujeme správnosť implementácie.
V prípade ak vidíme logy z aplikácie priamo v konzole Firebasu - všetko je správne :)
Firebase - Crashlytics
Umožňuje detailný crash reporting z aplikácií na zariadeniach používateľov.
V prvom kroku prejdeme v konzole Firebasu na tab Crashlytics a stlačíme tlačidlo Enable Crashlytics
Pridáme závislosti do Gradle súboru projektu (project-level)
dependencies {
...
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.2'
}
Následne pridáme závislosť do Gradle súboru aplikácie (app-level)
plugins{
...
id 'com.google.firebase.crashlytics'
}
...
dependencies {
implementation 'com.google.firebase:firebase-crashlytics'
...
}
Otestujeme správnosť implementácie
Firebase Authentication
Umožňuje bezpečné prihlasovanie používateľov, verifikáciu emailovej adresy a obnovenie hesla.
Podporuje prihlasovanie prostredníctvom vlastného emailu/hesla, alebo prostredníctvom Google, Twitter, GitHub atď.
V prvom kroku prejdeme na tab Authentication vo Firebase konzole a klikneme na tlačidlo Get started
Následne vyberieme Native Providers -> Email/Password -> Enable -> Save
Pridáme závislosť do Gradle súboru aplikácie (app-level)
dependencies {
implementation 'com.google.firebase:firebase-auth'
...
}
Pripravíme základný layout
Upravíme onCreate()
Následne vytvoríme metódu signUp()
Podobne môžeme postupovať aj pri vytváraní metódy signIn()
Ak chceme pristupovať k údajom prihlaseného používateľa, stačí zavolať FirebaseAuth.getInstance().getCurrentUser();
V novej aktivite môže implementácia vyzerať napríklad takto:
V poslednom kroku skontrolujeme správnosť našej implementácie vo Firebase konzole
Firebase Storage
Slúži predovšetkým ako úložisko pre interaktíny obsah (obrázky, zvuky, videa) a dopĺňa textové databázy (Realtime a Firestore)
Ponúka offline synchronizáciu v prípade, keď používateľ bude bez siete (automatická synchronizácia po pripojení).
V prvom kroku prejdeme na tab Storage vo Firebase konzole a klikneme na tlačidlo Get started
Pridáme závislosť do Gradle súboru aplikácie (app-level)
dependencies {
implementation 'com.google.firebase:firebase-storage'
...
}
Ošetríme výber obrázka z galérie napríklad takto:
A spracujeme odpoveď
saveImageToStorage() môže vyzerať napríklad takto:
Avšak bude vhodnejšie ak ju zavoláme priamo v odpovedi úspešnej registrácie a odkomentujeme user.getEmail() v predošlej ukážke
K súboru môžeme následne pristupovať v inej aktivite napríklad takto:
Pre načítanie obrázka môžete použiť napríklad Glide
implementation 'com.github.bumptech.glide:glide:4.12.0'