Table of Contents

Laboratorul 05. Integrarea datelor cu Firebase Realtime Database

Integrare ArcGIS în Angular. Actualizări în timp real

Obiective laborator

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)

Task 2 (5p)

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