Laboratorul 05. Integrarea datelor cu Firebase Realtime Database
Integrare ArcGIS în Angular. Actualizări în timp real
 
Obiective laborator
 Înțelegerea modului de integrare a 
API-ului ArcGIS într-un framework de JavaScript
 
 
 Înțelegerea modului de integrare a 
API-ului Firebase pentru actualizări în timp real
 
 
 
Firebase Realtime Database
Firebase oferă o suită de servicii cloud, de la autentificare până la machine learning în cloud.
Dintre acestea, Realtime Database este un serviciu folosit pentru sincronizarea datelor în timp real, fiind util în dezvoltarea aplicațiilor colaborative.
 
Creați un cont pe Firebase
Folosiți contul vostru de Google.
 
Creați un proiect nou
Creați o bază de date de tip Realtime Database
Selectați o locație din Europa atunci când creați baza de date
Configurați regulile de acces în mod public pentru o conexiune rapidă (nerecomandat în producție)
 
Creați o aplicație web nouă și salvați configurările necesare pentru conectare
Dacă ați creat deja o aplicație în Firebase Console, reveniți la pagina de configurare (Project settings).
Verificați ca obiectul de configurare să conțină databaseURL (dacă nu, dați refresh la pagină)
 
Aplicație web Angular cu ArcGIS și Firebase
Atunci când avem nevoie de funcționalități complexe, precum pagini multiple, elemente vizuale standard (butoane, liste, grid-uri, chart-uri, bară de navigație), sau interacțiunea cu un server/serviciu web extern (de ex. Firebase), este indicat să folosim un framework precum Angular.
Descărcați proiectul de pe GitHub: 
AngularDemoFirebase. Acesta este similar ca structură cu proiectul din laboratorul anterior și integrează modulul Firebase și Angular Material.
 
Modificați conținutul fișierelor - adăugați datele de conectare la proiectul creat în Firebase Console:
/environments/environment.ts
/environments/environment.prod.ts
Deschideți consola pentru a vizualiza datele din Firebase și încercați să adăugați date în baza de date. Verificați în consola Firebase dacă acestea au fost înregistrate.
 
Task
Descărcați scheletul aplicației de pe GitHub: AngularDemoFirebase.
Aspecte importante:
"@angular/fire": "^7.4.1",
constructor(
    private fbs: FirebaseService,
    // ..
)
import { AngularFireModule } from '@angular/fire/compat';
import { AngularFireDatabaseModule } from '@angular/fire/compat/database';
//..
imports: [
  // ..
  AngularFireModule.initializeApp(environment.firebase, 'AngularDemoFirebase'),
  AngularFireDatabaseModule
  // ..
]
 
Realizați modificările de mai sus și implementați următoarele funcționalități:
 
Task 1 (5p)
 Conectați-vă la Firebase folosind butonul Connect
 
 Folosiți butonul Add entry pentru a adăuga un element în Firebase
 
 Urmăriți actualizarea în timp real în consolă a modificărilor din Firebase
 
 Ștergeți din Firebase Console toate înregistrările și verificați actualizarea în aplicație
 
 
Task 2 (5p)
 Integrați Firebase în aplicația ArcGIS din laboratorul anterior (vezi “Aspecte importante”)
 
 Creați o funcție care să adauge puncte pe hartă și să înregistreze datele în Firebase
 
 Creați o funcție care să actualizeze poziția utilizatorului (centrul hărții) în timp real / cel mult o dată pe secundă
 
 Afișați datele din Firebase pe hartă la deschiderea aplicației sau atunci când acestea sunt actualizate
 
 Verificați sincronizarea datelor în aplicație prin deschiderea încă unei ferestre de browser și urmărirea actualizărilor pe hartă
 
 
Aspecte diverse
Actualizarea dinamică a conținutului paginilor în Angular
<mat-list>
    <mat-list-item>
        <span class="label">Database entries</span>
    </mat-list-item>
    <mat-list-item *ngFor="let item of listItems">
        <span>{{item.val}}</span>
    </mat-list-item>
</mat-list>
Directiva Angular 
NgFor afișează / generează un template 
HTML în pagină pentru fiecare element dintr-o colecție. Similar, există 
NgIf pentru afișare condițională
 
 
Resurse