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íacatA
(devuelveproduct1
)todos los productos con autor
12345
O autor 67890 (devuelveproduct1
yproduct3
)
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