instalar firestore firebase angularfire

firestore - firebase angular 5



Obteniendo.read y.write Reglas de seguridad para trabajar para grupos (1)

Las siguientes reglas de seguridad darían acceso de lectura y escritura para un proyecto solo a los usuarios que están en el equipo de ese proyecto (suponiendo que agregue un nodo /projects para cada usuario para indicar a qué proyectos tiene acceso ese usuario):

"rules": { "projects": { "$project": { ".read": "root.child(''users'').child(auth.uid).child(''projects'').val().child($project).exists()" , ".write": "root.child(''users'').child(auth.uid).child(''projects'').val().child($project).exists()" } } }

No puedo ver qué datos está almacenando para cada proyecto, pero si almacena una referencia al equipo del proyecto también podría usar eso en sus reglas de seguridad.

Tengo dificultades para escribir las reglas de seguridad para crear una plataforma de colaboración basada en equipos.

  1. Cuando un usuario se registra, debe poder crear un equipo e invitar a los usuarios a ese equipo.
  2. Los proyectos deben ser propiedad del equipo.
  3. Solo los usuarios de ese equipo deberían poder ver ese proyecto.
  4. Los usuarios solo deben ver los equipos de los que son miembros.

¿Cómo escribo .read las reglas de seguridad para que los usuarios solo vean la información de los equipos en los que se encuentran?

Solo debería enumerar dos equipos porque les pertenezco github: 8272012.

Reglas de seguridad actuales:

{ "rules": { ".read": true, "users": { "$user": { //can add a message if authenticated ".write": "auth.uid === $user" } }, "teams": { "$team": { "users": { // can write to the users list only if ADMINISTRATOR "$user": { ".write":"newData.parent().child(auth.uid).val() === 99" } } } }, "projects": { "$team": { "$project": { //can add a message if they are a MEMBER ".write": "(!data.exists() && newData.exists() && root.child(''teams/'' + $team + ''/users/'' + auth.uid).val() >= 10)" } } } } }

Solo debería enumerar dos equipos porque les pertenezco github:8272012 .