Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

152
Vistas
¿Cómo agregar una regla a firebase para dar acceso a un grupo de ID de usuario a una ruta?

Tengo un documento en Firebase estructurado así:

 { applications: { id_1: { feature: { a: true, b: false }, users: ['user_id_1', 'user_id_2'] } } }

Quiero agregar una regla que asegure que solo los usuarios en la matriz de users puedan leer y escribir en la aplicación con id === id_1 .

He intentado agregar las siguientes reglas, pero aún parece que puedo leer y escribir datos cuando estoy conectado como user_id_3

 { "rules": { ".read": "now < 1643846400000", // 2022-2-3 ".write": "now < 1643846400000", // 2022-2-3, "applications": { "$appId": { ".write": "data.child('users').hasChild(auth.uid)", ".read": "data.child('users').hasChild(auth.uid)" } } } }

¿Cómo puedo agregar una regla para dar acceso a un grupo de usuarios?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

La función hasChild utilizada en su ejemplo de reglas solo busca claves que sean secundarias de la ruta que especificó. En su caso, la ruta es applications/$appId/users .

Los datos almacenados en applications/$appId/users son una matriz, por lo que la clave para cada elemento de la matriz sería el índice del elemento. Esta es la razón por la que su regla no funciona: está verificando user_id_1 o user_id_2 , pero las claves en sus datos son 0 y 1 . No existe un equivalente actual para "array contains" cuando se escriben reglas de Firebase.

Una solución sería cambiar la estructura de datos de applications/$appId/users para que sea un objeto en lugar de una matriz. Por ejemplo:

 { applications: { id_1: { feature: { a: true, b: false }, users: { user_id_1: true, user_id_2: true } } } }

Luego, usar hasChild en sus reglas funcionará ya que la identificación del usuario es un hijo de applications/$appId/users .

Una cosa a tener en cuenta sobre su seguridad en general: al otorgar acceso de escritura a todo $appId , le está dando a cualquier usuario en applications/$appId/users la capacidad de editar el permiso de cualquier otro usuario. Ya que son libres de leer/escribir todos los datos en esa ubicación.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda