2016-05-21 14 views
11

Ich probiere Firebase aus (seit Googles neuer Version).Firebase (2016) Shallow Query

In der ursprünglichen Version von Firebase der Parameter shallow=true würde ein Objekt zurückgeben mit { key: true } für jeden key an der Wurzel des Baumes/Zweig, der angefordert wurde (und so, anstatt Kinder zurückgegeben werden, würden Sie wissen, nur die Tatsache, dass Kind (er) existieren). Dies ist nützlich, weil Sie nicht unbedingt alle Daten von den untergeordneten Knoten haben möchten (besonders wenn es viele davon gibt).

Gibt es eine Möglichkeit, dies mit der neuen Version von Firebase von Google zu tun? Ich denke, so etwas wie:

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

Die snapshot.val() Rendite des obigen Code null und wenn ich the docs richtig gerade lese, scheint es diese Funktionalität ist weg.

Antwort

23

Der Parameter ?shallow=true in Firebase Database 2.x war nur in der REST-API verfügbar. Siehe https://www.firebase.com/docs/rest/guide/retrieving-data.html#section-rest-uri-params.

In der neuen Firebase-Datenbank 3.x ist derselbe Parameter immer noch nur in der REST-API verfügbar. Siehe https://firebase.google.com/docs/database/rest/retrieve-data#shallow

Sie verwenden ein Firebase SDK (JavaScript von der Optik), das diesen Parameter nie unterstützt.

Für weitere Fragen, die in der Vergangenheit diskutiert haben, finden Sie unter:

+4

Gibt es Pläne, dies zu ändern? Es macht es sehr schwierig, effiziente Wert-Listener zu schreiben, wenn Sie immer gezwungen sind, alle Nachkommen eines Knotens herunterzuladen. – chetbox

+2

Ich möchte auch eine flache Option zum iOS SDK hinzufügen. Ich habe über 1,5 Millionen Artikel in meiner Datenbank. – FlatDog

+1

@Frank van Puffelen, danke für die Antwort. Gibt es Pläne zum Hinzufügen der flachen Abfrage zum Firebase SDK? Gibt es auch einen Grund, warum es nicht schon in der Vergangenheit hinzugefügt wurde? – Rbar