Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

151
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda