Firebase import export

Firebase è un database gestito da Google ed utilizzato per gestire i dati di molte applicazioni mobile e non. Non è un db basato su Sql, questo prevede una gestione dei dati differente rispetto ai soliti db. Tendenzialmente la gestione dei dati avviene direttamente dall’applicazione che si utilizza ma ci possono essere dei casi in cui la gestione dei dati deve essere fatta direttamene tramite un backend.

Import export firestore

Esistono due tipologie di database: il Firestore database ed il Realtime database. Come spiegato nella guida ufficiale, firebase offre due soluzioni di database accessibili dal client basate su cloud che supportano la sincronizzazione dei dati in tempo reale:

  • Cloud FireStore è il nuovo database Firebase per lo sviluppo di applicazioni mobili. Si basa sui successi del Realtime Database con un nuovo modello di dati più intuitivo. Cloud Firestore offre anche query più ricche e veloci e offre una scalabilità superiore rispetto al Realtime Database.
  • Database in tempo reale è il database originale di Firebase. È una soluzione efficiente e a bassa latenza per le app mobili che richiedono stati sincronizzati tra i client in tempo reale.
firebase import-export firestore

Quello che a noi interessa è capire come gestire i dati, importarli ed esportarli, nel cloud Firestore db. E per fare questo ci viene in aiuto un modulo, o meglio un pacchetto confezionato per Node.js che si occupa dell’importazione e dell’esportazione dei dati.

Il pacchetto in questione si chiama node-firestore-import-export e benchè come segnalato dal sito ufficiale abbia delle vulnerabilità, è comunque utile se si vogliono caricare su Firestore dei dati in maniera piuttosto semplice.

Carichiamo i nostri dati su firestore

Come prima cosa ci servono i dati. Personalmente sono partito da un foglio di calcolo in cui erano presenti tutti le informazioni che volevo caricare.
Salvo quindi questo foglio di calcolo in un semplice foglio .csv per poterlo manipolare più facilmente. Converto tutti i numeri con la virgola, intesi con decimali e con il separatore con il carattere ‘virgola’ in numeri decimali con il punto.

Quindi sfrutto un programma di conversione online molto comodo e gratuito che permette di convertire il formato .csv in altri diversi formati. Andando sul sito web ConvertCSV riesco infatti a convertire in JSON (quello che servirà a noi), XML, SQL YAML ed altri.

Una volta ottenuto il file in formato JSON, per la precisione Keyed JSON quindi con un dato che funziona da chiave primaria, devo adattarlo al formato richiesto. Non faccio altro che copiare il risultato ottenuto ed incollarlo in un file con il seguente formato:

{
   "__collections__": {
      "Nome della collezione": 
                     ...... posizione dove incollare i dati in JSON ....
    }
}

In questo modo otterrò il nome della collezione (paragonabile ad una tabella SQL) ed al suo interno tutti i dati suddivisi per chiave di identificazione (un nome univoco od un numero univoco).

Facciamo l’importazione dei file

Ottenuto il file in formato JSON correttamente compilato farne l’upload o l’import direttamente su Firestore con il programma che abbiamo installato è piuttosto semplice.
Ci servirà una chiave di sicurezza che potremo ottenere direttamente da FIRESTORE -> Impostazioni Progetto -> Account di servizio -> Genera nuova chiave privata.

Ottenuti questi due file sarà sufficiente aprire il terminale e digitare

firestore-import -a firekey -b file.json

Il programma si occuperà di caricare il file Json indicato sfruttando la chiave privata indicata, quindi nel database corretto.
Per ulteriori info basta dare una veloce occhiata al video seguente che spiega nel dettaglio tutti i passaggi.