2015-03-06 18 views
6

Ho un database con un sacco di "elenchi" strutturato come tale:Query a chiave e l'ordine per data

Listings

voglio ottenere 10 annunci, che cominciano o finiscono ad un certo valore di priorità, con un valore di dimensione (nodo figlio) compreso tra 9 e 10.5 e avere il risultato ordinato per priorità.

Ho esaminato un'abbondanza di post SO e esempi Firebase, ma non riesco a trovare alcuna soluzione.

Può davvero essere che questo non sia possibile in Firebase? È abbastanza un caso d'uso comune, per quanto ne so.

C'è qualche soluzione a questo? Altrimenti, come lo faresti?

+0

Si prega di condividere il codice di esempio come punto di partenza. Firebase non è familiare a tutti. Inoltre, perché questo taggato [ios]? –

+0

Attualmente è possibile chiamare 'orderBy' una volta in ogni query. Quindi l'unica soluzione sarebbe quella di combinare le proprietà che si desidera utilizzare in una singola proprietà e ordinare/filtrare su quello. –

+2

Vedere anche http://stackoverflow.com/questions/27432030/ –

risposta

5

È possibile rivedere lo Complex Queries nella documentazione di Firebase.

Dai un'occhiata alle query di intervallo. startAt() e endAt() consentono di cercare scarpe con dimensioni specifiche impostando i punti di inizio e di fine per le query.

Per esempio, se volevamo trovare tutte le scarpe che si trovano tra 9 e 10.5, unire orderByChild(), startAt e endAt. Qualcosa del tipo:

var ref = new Firebase(URL); 
ref.orderByChild("size").startAt("9").endAt("10.5").on("child_added", function(snapshot) { 
    console.log(snapshot.key()); 
}); 

Se fosse possibile fornire un esempio di codice, sarebbe più semplice individuare la soluzione. Potrebbe essere necessario modificare il modello dei dati se si desidera ordinare la query con più chiavi.

Problemi correlati