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