update remove recuperar query orderbykey guardar datos child javascript angularjs firebase nosql

javascript - remove - orderbykey firebase



Filtrar productos en múltiples propiedades secundarias en Firebase (1)

Según lo que he leído aquí , la forma de hacerlo es realizar la primera consulta (preferiblemente la que arrojará el menor número de resultados), luego filtrar por el otro campo en javascript. Otra forma de hacerlo, y lo recomendaría si realiza esta consulta a menudo, es crear un índice compuesto para la consulta; la respuesta de Frank van Puffelen en el enlace de arriba da un ejemplo de esto.

products/ product1 /author: 12345 /title: "Awesome" /category: "catA" /description: "more awesome" /author_category: "12345_catA" product2 /author: 67890 /title: "Other" /category: "catB" /description: "otherawesome" /author_category: "67890_catB" product3 /author: 12345 /title: "Billy" /category: "catB" /description: "otherawesome" /author_category: "12345_catB"

En cuanto a la ''O'', he buscado durante bastante tiempo y no he encontrado nada para ayudarte. Sugeriría dos consultas separadas.

Recientemente, le pregunté cómo filtrar los productos en función de su propiedad hija (ver: Filtrar productos basados ​​en el secundario en Firebase ).

Como resumen, mi estructura se ve de la siguiente manera:

products/ product1 /author: 12345 /title: "Awesome" /category: "catA" /description: "more awesome" product2 /author: 67890 /title: "Other" /category: "catB" /description: "otherawesome" product3 /author: 12345 /title: "Billy" /category: "catB" /description: "otherawesome"

Y para filtrar todos los productos con el autor 12345 , podemos simplemente usar:

ref.child("products").orderByChild(''author'').equalTo(12345)...

Sin embargo, ¿qué hacer cuando tengo múltiples declaraciones AND o múltiples sentencias OR?

Entonces, ¿y si quiero filtrar?

  • todos los productos con autor 12345 AND categoría catA (devuelve product1 )

  • todos los productos con autor 12345 O autor 67890 (devuelve product1 y product3 )

Para la primera parte, probé:

ref.child("products").orderByChild(''author'').equalTo(12345).orderByChild(''category'').equalTo(''catA'')...

pero eso no funcionó (arroja un error You can''t combine multiple orderBy calls )

Ver también: https://www.firebase.com/docs/web/guide/retrieving-data.html#section-queries