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
    • Actualizarea datelor în timp real în aplicația web
    • Sincronizarea elementelor de pe hartă

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.

AngularFire este un modul Angular pentru integrarea bibliotecii Firebase Javascript SDK.

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:

  • fișierul package.json (npm install pt a re/instala dependențele specificate)
"@angular/fire": "^7.4.1",
  • servicii: services/firebase.ts
  • injectarea dependențelor: pages/home/home.component.ts
constructor(
    private fbs: FirebaseService,
    // ..
)
  • variabile de environment: environments - firebase config (doar obiectul de confgurare)
  • declararea modulelor: app.module.ts (ex. AngularFireModule)
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

isi/laboratoare/05.txt · Last modified: 2024/11/04 12:52 by sorin.ciolofan
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0