Tengo la siguiente estructura de base de datos de firestore (imagen 1). Quiero que los usuarios (no autenticados) de mi aplicación web puedan ver el perfil público de cada plomero que contiene reseñas (imagen 2) que obtienen de los trabajos ganados. Mi pregunta es cómo puedo exponer de manera segura el UID de cada usuario que haya realizado una de esas revisiones. Espero que mi pregunta tenga sentido.
rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { match /{document=**} { allow read, write: if request.auth != null; } } }
Si desea permitir que los usuarios lean/escriban su propio documento de usuario y permitir que cualquier persona lea sus reseñas, pruebe estas reglas:
rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { match /users/{userId} { allow read, update: if request.auth.uid == userId; match /reviews/{reviewId} { allow read: if true; allow write: if request.auth.uid == resource.data.userId } } } }
Aquí solo el cartel de revisar y escribir (actualizar/eliminar) y cualquier usuario no autenticado puede leerlo. Sin embargo, no pueden acceder al documento de usuario.
Puede leer más sobre las reglas de seguridad en la documentación .