es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Qué reglas debo establecer en mis reglas de Firestore para permitir únicamente a los usuarios con dicho ID de usuario ver el libro con el mismo ID de usuario?

Quiero que el usuario solo vea los libros con el mismo userID que su propio userID. ¿A qué reglas debo establecerlo? A continuación se muestran mis reglas actuales, pero permiten acceso a todos los libros una vez que se ha iniciado sesión.

service cloud.firestore {
  match /databases/{database}/documents {
    // Solo permitir acceso a los propietarios de contenido autenticados
    match /booklist/{documents=**} {
      allow read, write: if request.auth != null
    }
  }
}

Quiero agregar la característica request.auth.uid == userID, pero no funciona cuando intento agregarla.

Para referencia, aquí está mi colección ‘booklist’ donde se puede ver el campo userID indicado.
booklist collection

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para permitir que los usuarios solo vean los libros con su propio ID de usuario, puedes modificar las reglas actuales para incluir una condición que valide el ID de usuario para cada libro. Aquí tienes una versión actualizada de las reglas que debería funcionar para tu escenario:

    service cloud.firestore {
      match /databases/{database}/documents {
        // Solo permite el acceso a los propietarios autenticados del contenido
        match /booklist/{bookId} {
          allow read, write: if request.auth != null && request.auth.uid == resource.data.userID;
        }
      }
    }
    

    En esta nueva versión, agregamos una verificación que garantiza que el usuario autenticado no sea nulo, y que su ID de usuario coincida con el almacenado en el documento del libro. Ten en cuenta que también cambiamos el patrón de coincidencia para incluir un ID de libro específico, en lugar de utilizar un comodín para cualquier libro bajo la ruta /booklist.

    Con estas reglas en su lugar, cada usuario solo podrá leer/escribir en sus propios libros, como se indica en el campo correspondiente de ID de usuario.

Comments are closed.