Presentación

Firebase Auth

Cloud Firestore

Cloud Storage

Cloud Functions

Curso Firebase para Web se encuentra en desarrollo. Vuelve pronto para encontrar nuevas lecciones.

  • Antes de comenzar hemos de actualizar rooms.js y RoomsView.vue para solucionar un error a la hora de procesar el orden de nuestra colección rooms.
// rooms.js
roomsByDate: state => {
  return state.rooms.sort(function(a, b) {
    return new Date(b.createdAt) - new Date(a.createdAt);
  });
}

createRoom(state, { roomData, id }) {
  ...
  state.rooms.push(roomData);
},

// RoomsView.vue
<RoomsComponent
  :unread-messages="unreadMessages"
  :rooms="$store.getters['rooms/roomsByDate']"
/>
  • Ahora podemos poner en practica lo aprendido en la lección anterior y componer nuestras reglas de seguridad.
rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
        allow read, write: if false;
    }

    match /rooms/{roomID} {
        allow read, create: if request.auth != null;
        allow update, delete: if request.auth.uid == resource.data.adminUid;
    }

    match /{path=**}/messages/{messageID} {
    	// Leer si estás autentificado
        allow read: if request.auth != null;

        // Escribir si estás dentro de la sala
        allow create: if request.resource.data.roomId in get(/databases/$(database)/documents/users/$(request.auth.uid)).data.connected;

        // Actualizar (modificamos perfil) si los mensajes son del usuario
        allow update: if resource.data.userId == request.auth.uid;

        // Eliminar si eres el admin
        allow delete: if get(/databases/$(database)/documents/rooms/$(resource.data.roomId)).data.adminUid == request.auth.uid;
    }

    match /users/{userID} {
    	allow read, write: if request.auth.uid == userID;
    }
  }
}
Storyblok: el primer CMS headless tanto para desarrolladores como para marketers

El primer headless CMS tanto para desarrolladores como para marketers. Pruébalo gratis.

Código inicial
Aprende Firebase en Escuela Vue

¿Tienes alguna pregunta sobre esta lección de Curso Firebase para Web?

Resuelve todas tus dudas sobre Firebase en la Comunidad de Escuela Vue: un lugar donde participar, aprender y ayudar. ¡Te esperamos!.

Tras el registro (si no lo has hecho ya) serás redirigido/a al canal adecuado en la Comunidad.

Twitter

Sigue el día a día y todo lo relacionado con Escuela Vue a través de su cuenta de Twitter.

Discord

En la Comunidad de Escuela Vue podrás solucionar tus dudas y ayudar a otras personas como tú a solucionar las suyas.

Recibe novedades en tu 📬