Què és Cloud Firestore?
Cloud Firestore és una base de dades NoSQL flexible, escalable i en temps real proporcionada per Firebase. Està dissenyada per emmagatzemar, sincronitzar i consultar dades per a aplicacions mòbils i web a gran escala. A diferència de la base de dades en temps real de Firebase, Cloud Firestore ofereix una estructura de dades més rica i consultes més potents.
Característiques clau de Cloud Firestore
- Model de dades flexible: Utilitza documents i col·leccions per emmagatzemar dades.
- Consultes avançades: Permet realitzar consultes complexes amb filtres, ordres i límits.
- Escalabilitat: Pot gestionar grans volums de dades i trànsit.
- Sincronització en temps real: Les dades es sincronitzen automàticament entre clients.
- Integració amb altres serveis de Firebase: Com autenticació, funcions en el núvol, etc.
Model de dades de Cloud Firestore
Cloud Firestore utilitza un model de dades jeràrquic basat en documents i col·leccions:
- Documents: Són unitats de dades que contenen parells clau-valor. Cada document té un identificador únic.
- Col·leccions: Són contenidors de documents. Una col·lecció pot contenir múltiples documents, i cada document pot contenir subcol·leccions.
Exemple de model de dades
Imagina que estàs creant una aplicació de xat. Podries tenir una col·lecció de "xats" on cada document representa una conversa, i cada document de conversa podria tenir una subcol·lecció de "missatges".
xats (col·lecció) | |-- xatID1 (document) | | | |-- missatges (subcol·lecció) | | | |-- missatgeID1 (document) | |-- missatgeID2 (document) | |-- xatID2 (document) | |-- missatges (subcol·lecció) | |-- missatgeID1 (document) |-- missatgeID2 (document)
Configuració inicial de Cloud Firestore
Pas 1: Crear un projecte de Firebase
- Ves a la consola de Firebase.
- Crea un nou projecte o selecciona un projecte existent.
Pas 2: Afegir Cloud Firestore al teu projecte
- A la consola de Firebase, selecciona "Cloud Firestore" al menú de navegació.
- Fes clic a "Crear base de dades".
- Selecciona el mode de seguretat (per a desenvolupament, pots seleccionar "Mode de prova").
- Fes clic a "Habilitar".
Pas 3: Configurar el SDK de Firebase al teu projecte
Per a aplicacions web
- Afegeix el SDK de Firebase al teu projecte:
<!-- Afegeix aquestes etiquetes a la teva pàgina HTML --> <script src="https://www.gstatic.com/firebasejs/9.0.0/firebase-app.js"></script> <script src="https://www.gstatic.com/firebasejs/9.0.0/firebase-firestore.js"></script>
- Inicialitza Firebase i Cloud Firestore:
// Inicialitza Firebase const firebaseConfig = { apiKey: "API_KEY", authDomain: "PROJECT_ID.firebaseapp.com", projectId: "PROJECT_ID", storageBucket: "PROJECT_ID.appspot.com", messagingSenderId: "SENDER_ID", appId: "APP_ID" }; firebase.initializeApp(firebaseConfig); // Inicialitza Cloud Firestore const db = firebase.firestore();
Per a aplicacions mòbils (Android)
- Afegeix les dependències de Firebase al teu
build.gradle
:
dependencies { // Altres dependències implementation 'com.google.firebase:firebase-firestore:23.0.3' }
- Inicialitza Firebase i Cloud Firestore al teu codi Kotlin/Java:
// Inicialitza Firebase FirebaseApp.initializeApp(this) // Inicialitza Cloud Firestore val db = FirebaseFirestore.getInstance()
Primeres operacions amb Cloud Firestore
Afegir dades
Per afegir un document a una col·lecció:
// Afegeix un nou document amb un ID generat automàticament db.collection("xats").add({ nom: "Conversa General", creat: firebase.firestore.FieldValue.serverTimestamp() }) .then((docRef) => { console.log("Document escrit amb ID: ", docRef.id); }) .catch((error) => { console.error("Error afegint document: ", error); });
Llegir dades
Per obtenir tots els documents d'una col·lecció:
db.collection("xats").get().then((querySnapshot) => { querySnapshot.forEach((doc) => { console.log(`${doc.id} => ${doc.data()}`); }); });
Actualitzar dades
Per actualitzar un document existent:
var xatRef = db.collection("xats").doc("xatID1"); // Actualitza el camp "nom" xatRef.update({ nom: "Conversa Actualitzada" }) .then(() => { console.log("Document actualitzat correctament"); }) .catch((error) => { console.error("Error actualitzant document: ", error); });
Eliminar dades
Per eliminar un document:
db.collection("xats").doc("xatID1").delete().then(() => { console.log("Document eliminat correctament"); }).catch((error) => { console.error("Error eliminant document: ", error); });
Exercicis pràctics
Exercici 1: Crear una col·lecció i afegir documents
- Crea una col·lecció anomenada "usuaris".
- Afegeix tres documents amb els següents camps:
nom
,email
,edat
.
Exercici 2: Llegir i mostrar dades
- Llegeix tots els documents de la col·lecció "usuaris".
- Mostra els noms i correus electrònics a la consola.
Exercici 3: Actualitzar un document
- Actualitza el camp
edat
d'un dels documents de la col·lecció "usuaris".
Exercici 4: Eliminar un document
- Elimina un dels documents de la col·lecció "usuaris".
Solucions
Solució a l'Exercici 1
db.collection("usuaris").add({ nom: "Joan", email: "[email protected]", edat: 25 }); db.collection("usuaris").add({ nom: "Maria", email: "[email protected]", edat: 30 }); db.collection("usuaris").add({ nom: "Pere", email: "[email protected]", edat: 28 });
Solució a l'Exercici 2
db.collection("usuaris").get().then((querySnapshot) => { querySnapshot.forEach((doc) => { console.log(`Nom: ${doc.data().nom}, Email: ${doc.data().email}`); }); });
Solució a l'Exercici 3
var usuariRef = db.collection("usuaris").doc("usuariID1"); usuariRef.update({ edat: 26 }) .then(() => { console.log("Document actualitzat correctament"); }) .catch((error) => { console.error("Error actualitzant document: ", error); });
Solució a l'Exercici 4
db.collection("usuaris").doc("usuariID1").delete().then(() => { console.log("Document eliminat correctament"); }).catch((error) => { console.error("Error eliminant document: ", error); });
Conclusió
En aquesta secció, hem après què és Cloud Firestore, com configurar-lo i realitzar operacions bàsiques com afegir, llegir, actualitzar i eliminar dades. Aquestes operacions són fonamentals per treballar amb Cloud Firestore i construir aplicacions que necessiten emmagatzemar i gestionar dades de manera eficient. En la següent secció, explorarem el model de dades de Firestore en més detall.
Curs de Firebase
Mòdul 1: Introducció a Firebase
Mòdul 2: Autenticació de Firebase
- Introducció a l'autenticació de Firebase
- Autenticació amb correu electrònic i contrasenya
- Autenticació amb xarxes socials
- Gestió d'usuaris
Mòdul 3: Base de dades en temps real de Firebase
- Introducció a la base de dades en temps real
- Lectura i escriptura de dades
- Estructura de dades i regles de seguretat
- Capacitats fora de línia
Mòdul 4: Cloud Firestore
- Introducció a Cloud Firestore
- Model de dades de Firestore
- Operacions CRUD
- Consultes avançades
- Regles de seguretat
Mòdul 5: Emmagatzematge de Firebase
- Introducció a l'emmagatzematge de Firebase
- Carregar fitxers
- Descarregar fitxers
- Metadades de fitxers i seguretat
Mòdul 6: Missatgeria en el núvol de Firebase
- Introducció a la missatgeria en el núvol
- Enviar notificacions
- Gestionar notificacions
- Funcions avançades de missatgeria
Mòdul 7: Analítica de Firebase
Mòdul 8: Funcions de Firebase
Mòdul 9: Monitoratge del rendiment de Firebase
- Introducció al monitoratge del rendiment
- Configuració del monitoratge del rendiment
- Analitzar dades de rendiment