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

  1. Ves a la consola de Firebase.
  2. Crea un nou projecte o selecciona un projecte existent.

Pas 2: Afegir Cloud Firestore al teu projecte

  1. A la consola de Firebase, selecciona "Cloud Firestore" al menú de navegació.
  2. Fes clic a "Crear base de dades".
  3. Selecciona el mode de seguretat (per a desenvolupament, pots seleccionar "Mode de prova").
  4. Fes clic a "Habilitar".

Pas 3: Configurar el SDK de Firebase al teu projecte

Per a aplicacions web

  1. 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>
  1. 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)

  1. Afegeix les dependències de Firebase al teu build.gradle:
dependencies {
    // Altres dependències
    implementation 'com.google.firebase:firebase-firestore:23.0.3'
}
  1. 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

  1. Crea una col·lecció anomenada "usuaris".
  2. Afegeix tres documents amb els següents camps: nom, email, edat.

Exercici 2: Llegir i mostrar dades

  1. Llegeix tots els documents de la col·lecció "usuaris".
  2. Mostra els noms i correus electrònics a la consola.

Exercici 3: Actualitzar un document

  1. Actualitza el camp edat d'un dels documents de la col·lecció "usuaris".

Exercici 4: Eliminar un document

  1. 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

Mòdul 3: Base de dades en temps real de Firebase

Mòdul 4: Cloud Firestore

Mòdul 5: Emmagatzematge de Firebase

Mòdul 6: Missatgeria en el núvol de Firebase

Mòdul 7: Analítica de Firebase

Mòdul 8: Funcions de Firebase

Mòdul 9: Monitoratge del rendiment de Firebase

Mòdul 10: Laboratori de proves de Firebase

Mòdul 11: Temes avançats de Firebase

© Copyright 2024. Tots els drets reservats