2016-05-21 14 views
11

Próbuję Firebase (od nowego wydania Google'a).Firebase (2016) Shallow Query

W oryginalnej wersji Firebase parametr shallow=true wróci obiekt z { key: true } dla każdego key u korzenia drzewa/oddziału, który został poproszony (a więc, zamiast być zwrócony dzieci, byś po prostu wiem, fakt, że dziecko (dzieci) istnieją). Jest to przydatne, ponieważ niekoniecznie chcesz wszystkie dane z węzłów podrzędnych (szczególnie jeśli jest ich dużo).

Czy można to zrobić w nowej wersji Firebase? Myślę, że coś takiego:

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

Powyższy kod jest snapshot.val() zwraca NULL a jeśli czytam the docs poprawnie, wydaje się ta funkcjonalność nie ma.

Odpowiedz

23

Parametr ?shallow=true w bazie danych Firebase 2.x był dostępny tylko w interfejsie API REST. Zobacz https://www.firebase.com/docs/rest/guide/retrieving-data.html#section-rest-uri-params.

W nowej bazie danych Firebase 3.x ten sam parametr jest nadal dostępny tylko w interfejsie API REST. Zobacz https://firebase.google.com/docs/database/rest/retrieve-data#shallow

Używasz zestawu SDK Firebase (JavaScript z wyglądu), który nigdy nie wspierał tego parametru.

Na więcej pytań, które zostały omówione w przeszłości, zobacz:

+4

Czy są jakieś plany, aby to zmienić? Ułatwia pisanie słuchaczy efektywnej wartości, jeśli zawsze jesteś zmuszony do pobrania wszystkich potomków węzła. – chetbox

+2

Chciałbym również poprosić o dodanie płytkiej opcji do SDK iOS. Mam ponad 1,5 miliona pozycji w mojej bazie danych. – FlatDog

+1

@Frank van Puffelen, dzięki za odpowiedź. Czy są jakieś plany, aby dodać płytkie zapytanie do pakietu SDK Firebase? Czy istnieje jakiś powód, dla którego nie został dodany w przeszłości? – Rbar