Presentación

Firebase Auth

Cloud Firestore

Cloud Storage

Cloud Functions

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

  • Con las funciones podemos evitar repetir las mismas instrucciones una y otra vez.
  • Por otro lado, gracias al objeto resource.data podemos hacer comparaciones con nuestra propia petición en request.resource para realizar una validación de datos efectiva.
rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {

    match /{document=**} {
      allow read, write: if false;
    }

    match /rooms/{roomID} {
      allow read: if isAuth();
      allow create: if isAuth()
      				&& isComplete(request.resource.data.name)
                    && isComplete(request.resource.data.description);
      allow update: if request.auth.uid == resource.data.adminUid
      				&& isComplete(request.resource.data.name)
                    && isComplete(request.resource.data.description);
      allow delete: if request.auth.uid == resource.data.adminUid;
    }

    function isAuth() {
      return request.auth != null
    }

    function isComplete(prop) {
    	return prop is string && prop.size() > 10 && prop.size() < 160;
    }

    match /{path=**}/messages/{messageID} {
    	// Leer si estás autentificado
        allow read: if isAuth();

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