Introducció
En aquest tema, explorarem com gestionar les metadades dels fitxers emmagatzemats a Firebase Storage i com assegurar aquests fitxers utilitzant regles de seguretat. Les metadades són informació addicional sobre els fitxers, com ara el tipus de fitxer, la mida, la data de creació, etc. Les regles de seguretat permeten controlar qui pot accedir i modificar els fitxers emmagatzemats.
Metadades de fitxers
Què són les metadades?
Les metadades són informació addicional que es pot associar amb un fitxer. Algunes metadades comunes inclouen:
- Content-Type: El tipus MIME del fitxer (per exemple,
image/jpeg
). - Size: La mida del fitxer en bytes.
- Creation Time: La data i hora en què es va crear el fitxer.
- Custom Metadata: Metadades definides per l'usuari, com ara etiquetes personalitzades.
Exemple de codi: Afegir metadades a un fitxer
// Obtenim una referència a l'emmagatzematge var storageRef = firebase.storage().ref(); // Creem una referència al fitxer var fileRef = storageRef.child('images/myImage.jpg'); // Definim les metadades var metadata = { contentType: 'image/jpeg', customMetadata: { 'uploadedBy': 'user123', 'description': 'Foto de vacances' } }; // Carreguem el fitxer amb les metadades fileRef.put(file, metadata).then((snapshot) => { console.log('Fitxer carregat amb èxit amb metadades!'); });
Exemple de codi: Obtenir metadades d'un fitxer
// Obtenim una referència a l'emmagatzematge var storageRef = firebase.storage().ref(); // Creem una referència al fitxer var fileRef = storageRef.child('images/myImage.jpg'); // Obtenim les metadades fileRef.getMetadata().then((metadata) => { console.log('Metadades del fitxer:', metadata); }).catch((error) => { console.error('Error en obtenir les metadades:', error); });
Seguretat
Regles de seguretat
Les regles de seguretat de Firebase Storage permeten definir qui pot llegir i escriure fitxers en l'emmagatzematge. Aquestes regles es defineixen en un fitxer JSON i es poden configurar des de la consola de Firebase.
Exemple de regles de seguretat
service firebase.storage { match /b/{bucket}/o { match /{allPaths=**} { // Permet l'accés de lectura a tots els usuaris autenticats allow read: if request.auth != null; // Permet l'accés d'escriptura només a l'usuari que ha carregat el fitxer allow write: if request.auth != null && request.auth.uid == resource.metadata.uploadedBy; } } }
Explicació de les regles
allow read: if request.auth != null;
: Permet l'accés de lectura a tots els usuaris autenticats.allow write: if request.auth != null && request.auth.uid == resource.metadata.uploadedBy;
: Permet l'accés d'escriptura només a l'usuari que ha carregat el fitxer. Això es basa en una metadada personalitzadauploadedBy
que conté l'ID de l'usuari que ha carregat el fitxer.
Exercicis pràctics
Exercici 1: Carregar un fitxer amb metadades personalitzades
- Carrega un fitxer a Firebase Storage amb les següents metadades personalitzades:
uploadedBy
: El teu ID d'usuari.description
: Una descripció del fitxer.
Solució de l'exercici 1
// Obtenim una referència a l'emmagatzematge var storageRef = firebase.storage().ref(); // Creem una referència al fitxer var fileRef = storageRef.child('documents/myDocument.pdf'); // Definim les metadades var metadata = { contentType: 'application/pdf', customMetadata: { 'uploadedBy': 'user123', 'description': 'Document important' } }; // Carreguem el fitxer amb les metadades fileRef.put(file, metadata).then((snapshot) => { console.log('Fitxer carregat amb èxit amb metadades!'); });
Exercici 2: Configurar regles de seguretat
- Defineix regles de seguretat que permetin l'accés de lectura a tots els usuaris autenticats i l'accés d'escriptura només a l'usuari que ha carregat el fitxer.
Solució de l'exercici 2
service firebase.storage { match /b/{bucket}/o { match /{allPaths=**} { // Permet l'accés de lectura a tots els usuaris autenticats allow read: if request.auth != null; // Permet l'accés d'escriptura només a l'usuari que ha carregat el fitxer allow write: if request.auth != null && request.auth.uid == resource.metadata.uploadedBy; } } }
Conclusió
En aquest tema, hem après com gestionar les metadades dels fitxers emmagatzemats a Firebase Storage i com assegurar aquests fitxers utilitzant regles de seguretat. Les metadades ens permeten afegir informació addicional als fitxers, mentre que les regles de seguretat ens ajuden a controlar l'accés als fitxers. Aquests conceptes són fonamentals per gestionar de manera eficient i segura els fitxers en una aplicació basada en Firebase.
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