Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Firebase Studio: applicazioni con MongoDB

Come realizzare applicazioni basate sul database manager NoSQL MongoDB utilizzando gli strumenti di Firebase Studio
Come realizzare applicazioni basate sul database manager NoSQL MongoDB utilizzando gli strumenti di Firebase Studio
Link copiato negli appunti

Firebase Studio nasce legato al mondo backend nel suo complesso, cioè per offrire controparti server ad applicazioni web e mobile. Questo concetto si è sviluppato molto a partire dalla fine del primo decennio di questo secolo e ha visto (e spronato) da un lato la diffusione delle applicazioni mobile per arricchire i dispositivi di cui il mondo si stava popolando, dall'altro l'esplosione del mondo NoSQL. Un settore foriero di progetti database non necessariamente basati su schemi rigidi e linguaggio SQL (che tuttavia rifioriva in diverse varianti) ma caratterizzati da strutture dati più variegate (idonee, ad esempio, ai Social Network) e maggiormente in grado si implementare meccanismi di sharding. La distribuzione di dati in parallelo su più macchine.

In tale fase storica uno dei prodotti NoSQL che ha acquisito maggior risalto è il progetto MongoDB considerato uno dei (se non, "il") database NoSQL più usati al mondo. Firebase Studio per questo permette di implementare soluzioni basate proprio su di esso.

Prima applicazione con MongoDB e Firebase Studio

Possiamo avviare una prima applicazione con MongoDB grazie ad uno dei template già impostati che siamo abituati a trattare dall'homepage. Si apre una finestra di dialogo:

Nuova applicazione basata sul template MongoDB

Figura 1. Nuova applicazione basata sul template MongoDB

Vengono prospettate tre soluzioni che non sono casuali ma riescono a coprire tutto lo spettro di possibili applicazioni con MongoDB.

Linguaggio di programmazione

Vengono proposte sia soluzioni in Python usando il framework Flask sia in Javascript basate sul framework Node.js. Parliamo in entrambi i casi di tecnologie produttive, basate sullo scripting, molto usate nei backend e ampiamente diffuse.

Client o server

Usare semplicemente Node significa creare un'applicazione per lo più client che svolge operazioni di lettura/scrittura dati da MongoDB e non si pone con un atteggiamento da server. Può essere ideale per migrare database, recuperare informazioni, salvare risultati di elaborazioni. Per implementare tutto ciò in pratica servono essenzialmente librerie per interagire con MongoDB.

REST API

Soluzioni che propongono l'attivazione di REST API sono applicazioni che vogliono costituire un server ovvero un servizio che deve essere contattato da client. Questo è il vero approccio da backend).

I client, tra l'altro, non avranno bisogno di essere sviluppati in Python o Node.js anch'essi o sapere cos'è MongoDB. Il paradigma REST si basa infatti sul protocollo HTTP pertanto è qualcosa di universale fondato su un formalismo di dialogo implementabile con qualsiasi linguaggio di programmazione.

Nel caso si opti per le applicazioni REST sono state in questo caso indicate librerie molto conosciute in questo ambito (Express per il lato Node.js e Flask per quello Python) in quanto immediate per l'implementazione di soluzioni semplici ma complete per poter strutturare delle applicazioni più evolute e robuste.

Primo esempio: lo script Node con MongoDB e Firebase Studio

Come prima prova, richiediamo un template di tipo "Node.js script with a MongoDB connection". Si tratta di uno script che si connette ad un database Mongo per eseguire le seguenti operazioni:

  • connessione ad un database Mongo;
  • inserimento di dati fittizi di utenti specificando nome, email ed età;
  • creazione di un indice sull'email;
  • interrogazione per la ricerca del primo utente inserito.

Ci sono molti aspetti parecchio interessanti nell'implementazione che ci ha fatto. In primis, abbiamo un database Mongo installato in locale pertanto il nostro esempio sarà immediatamente funzionante. Ci viene messo a disposizione tutto il set di comandi che ci serve come, ad esempio, mongosh, la shell, per interrogare il database Mongo e verificare che i dati siano stati effettivamente inseriti.

Il codice, scritto con tecniche di interazione asincrona per non penalizzare le operazioni, è piuttosto chiaro e funzionale e possiamo lavorarci interagendo con il prompt di AI che anche qui ci viene messo a disposizione.

Ad esempio, abbiamo chiesto come eseguire il codice e Gemini non solo ci ha risposto di procedere con i comandi npm install e node index.js ma, nella risposta, ci ha anche, offerto dei pulsanti da cliccare per far eseguire direttamente i comandi nel terminale.

Proviamo uno degli esempi più importanti ovvero la generazione di codice con il prompt "aggiungiamo una query che estrae solo gli indirizzi email di tutti gli utenti nella collection". Gemini commenta dicendo che è assolutamente possibile e ci offre la visualizzazione delle modifiche in cui viene messo a confronto script originale e nuova versione con evidenziazione in verde delle nuove linee:

Proposta di modifica al codice

Figura 2. Proposta di modifica al codice

Dopo aver visionato la proposta clicchiamo il pulsante Update file sempre proposto nel prompt in modo che essa venga inserita nel codice. Ci viene infine presentato un ulteriore pulsante che permette di eseguire il programma e nel terminale la parte finale dell'output mostra:

All user email addresses:
[
  'Carlos.Wuckert@hotmail.com',
  'Maybelle.Thiel95@gmail.com',
  'Micah_Mitchell@gmail.com',
  'Sabina_Towne@hotmail.com',
  'Camila_Considine66@yahoo.com',
  'Quinn.McDermott80@gmail.com',
  'Jan.Hoppe61@hotmail.com',
  'Delpha_Legros@yahoo.com',
  'Abbey_Steuber18@gmail.com',
  'Marianne_Stoltenberg74@hotmail.com'
]

In definitiva, per quanto riguarda lo scripting Node.js con MongoDB possiamo dire che Firebase Studio ha superato tutte le prove. Ora dobbiamo sperimentarlo sulla produzione di REST API.

Se vuoi aggiornamenti su Firebase Studio: applicazioni con MongoDB inserisci la tua email nel box qui sotto:

Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.

Ti consigliamo anche