Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

476
Views
¿Por qué recibo un error de permisos insuficientes al intentar eliminar un elemento de matriz de Firestore, pero puedo eliminar todo el documento?

Tengo una colección en mi firestore llamada "informes"

uno de los campos en el mapa de informes es una matriz de objetos. Estos objetos hacen referencia a una foto en el almacenamiento en la nube. Se ven así (la URL apunta al almacenamiento en la nube):

 { id: uid value url: some-url }

Mis reglas de Firebase están configuradas así para el documento de informes:

 match /databases/{database}/documents { match /reports/{report} { allow read: if request.auth != null && request.auth.uid == resource.data.userID; allow create: if request.auth != null && request.resource.data.userID == request.auth.uid; allow delete, update: if request.auth != null && request.auth.uid == resource.data.userID; } }

por alguna razón, puedo eliminar todo el documento si quiero probar que tengo permiso de eliminación... pero cuando intento eliminar un elemento de la matriz de fotos de esta manera:

 const reportRef = db.collection('reports') reportRef.doc(activeReport.id).update({ photos: firebase.firestore.FieldValue.arrayRemove(photoToDelete) })

Termino con un error que dice:

Rechazo de promesa no controlado: FirebaseError: permisos faltantes o insuficientes

¿Por qué? ¿No he dado permiso para actualizar este documento correctamente?

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Vaya a Base de datos -> Reglas ->

Para desarrollo:

Cambiar allow read, write: if falso; a verdadero;

Nota: Es una solución rápida solo para fines de desarrollo porque desactivará toda la seguridad. Por lo tanto, no se recomienda para la producción.

Para la producción:

Si se autentica desde firebase: Change allow read, write: if falso; a request.auth != null;

about 4 years ago · Juan Pablo Isaza Report

0

En este caso, se pasó un parámetro incorrecto. Necesitaba pasar activeReport, no activeReport.id.

Este es un mensaje de error engañoso. Eliminaría esta pregunta, pero stackoverflow no quiere que lo haga porque se ha publicado una respuesta aquí. Tonto.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!