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 personalitzada uploadedBy que conté l'ID de l'usuari que ha carregat el fitxer.

Exercicis pràctics

Exercici 1: Carregar un fitxer amb metadades personalitzades

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

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

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