¿Cómo consultar basado en múltiples condiciones en Firebase?

Tengo esta siguiente estructura:

{ "users" : { "123" : { "activities" : { "horse" : "horse", "bike" : "bike" }, "age" : 21 }, "124" : { "activities" : { "bike" : "bike" }, "age" : 30 } } 

Estoy tratando de hacer algo similar a:

SELECT * FROM users WHERE (activities = 'horse' OR activities = 'bike') AND age >= 21

¿Puedo por favor obtener algunos consejos sobre esto? Si no estructuré los datos correctamente, ¿también puedo obtener algunos consejos?

edición: jsfiddle

    One Solution collect form web for “¿Cómo consultar basado en múltiples condiciones en Firebase?”

    Marcaré esta pregunta como un duplicado, pero este código podría ser útil para que comiences a crear tu propio índice de búsqueda:

     var ref = new Firebase('https://yours.firebaseio.com/users'); var index = new Firebase('https://yours.firebaseio.com/index'); function createIndex() { ref.once('value', function(snapshot) { snapshot.forEach(function(userSnapshot) { var user = userSnapshot.val(); index.child(user.age).child(userSnapshot.key()).set(true); Object.keys(user.activities).forEach(function(activity) { index.child(activity).child(userSnapshot.key()).set(true); }); }); }); } 

    Como desea buscar en todos los usuarios, el código se desplaza sobre todos los usuarios (normalmente debería hacer esto cuando se agreguen o modifiquen los usuarios, por lo tanto, escuchando los eventos child_ ). Luego agrega los nodos relevantes al índice: uno para la edad y uno para cada categoría.

    Después de ejecutar esto en sus datos, el nodo de index ve así:

     { "21": {"123":true}, "30":{"124":true}, "bike":{"124":true}, "horse":{"123":true} } 

    Así que con eso puedes obtener todos los usuarios que están entre 20 y 30 por:

     ref.startAt("20").endAt("30").on('child_added' 

    O todos los usuarios con una actividad de “caballo” por:

     ref.equalTo("horse").on('child_added' 
    Javascript tiene muchos buenos JS marco (como Node.js AngularJS Vue.js React.js) es el mejor lenguaje de script.