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;
    }
  }
}
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 📬