Tengo la siguiente estructura en Realtime Database:
He leído algunas preguntas sobre SO que es posible y algunos dicen que no es posible, así que estoy un poco confundido sobre si esto se puede hacer o no, pero aquí va.
Tengo varios miembros (alrededor de 200) y me gustaría devolver solo aquellos que son mStatus == true.
Lo intenté haciendo esto:
const dbRef = ref(db, `organization/${org}/members`); const queryConstraints = [orderByChild("mStatus"), equalTo("value")] get(query(dbRef, ...queryConstraints)).then((snapshot) => { if(snapshot.exists()) { console.log(snapshot.val()); } else { console.log('No data available'); } })El retorno es nulo aquí está la regla de seguridad que uso:
"rules": { ".read": true, ".write": true, "members": { ".indexOn": ["mStatus"] } }¿Cómo ejecutaría esta consulta?
Dado que en los comentarios dijiste que tu lista de members está en /organization/{uid}/ , ahí también es donde tienes que definir el índice en tus reglas:
{ "rules": { ... "organization": { "$uid": { "members": { ".indexOn": ["mStatus"] } } } } }