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
edatd'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: "joan@example.com",
edat: 25
});
db.collection("usuaris").add({
nom: "Maria",
email: "maria@example.com",
edat: 30
});
db.collection("usuaris").add({
nom: "Pere",
email: "pere@example.com",
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
