2016-05-21 23 views
11

Sto provando Firebase (dalla nuova versione di Google).Firebase (2016) Shallow Query

Nella versione originale del Firebase parametro shallow=true sarebbe tornato un oggetto con { key: true } per ogni key alla radice dell'albero/ramo che è stato richiesto (e così, piuttosto che i bambini da restituire, si sarebbe solo sapere il fatto che child (ren) exist). Questo è utile perché non vuoi necessariamente tutti i dati dai nodi figli (in particolare se ce n'è molta).

C'è un modo per farlo con la nuova versione di Google di Firebase? Sto pensando qualcosa del tipo:

firebase.database().ref('/data/?shallow=true').once('value', function(snapshot) { 
    // do something with snapshot 
} 

snapshot.val() rendimenti del codice di cui sopra nulla e se sto leggendo correttamente the docs, sembra questa funzionalità è andato.

risposta

23

Il parametro ?shallow=true nel database Firebase 2.x era disponibile solo nell'API REST. Vedi https://www.firebase.com/docs/rest/guide/retrieving-data.html#section-rest-uri-params.

Nel nuovo database 3.x di Firebase, lo stesso parametro è ancora disponibile solo nell'API REST. Vedi https://firebase.google.com/docs/database/rest/retrieve-data#shallow

Si sta utilizzando un SDK Firebase (JavaScript dall'aspetto di esso), che non ha mai supportato questo parametro.

Per ulteriori domande che hanno discusso in passato, vedi:

+4

Ci sono piani per cambiare questo? Rende molto difficile scrivere listener di valori efficienti se si è sempre costretti a scaricare tutti i discendenti di un nodo. – chetbox

+2

Vorrei anche chiedere di aggiungere l'opzione shallow all'SDK di iOS. Ho oltre 1,5 milioni di articoli nel mio database. – FlatDog

+1

@Frank van Puffelen, grazie per la risposta. Ci sono piani per aggiungere la query superficiale all'SDK di Firebase? Inoltre, c'è qualche ragione per cui non è stato già aggiunto in passato? – Rbar