2016-03-24 8 views
0

Wie kann ich eine Reihe von Kindern (wie das zweite Kind bis zum fünften Kind) mit einer Abfrage in Firebase? Ich habe versucht, Sachen wie:Firebase/AngularFire - Eine Reihe von Kindern packen

new Firebase(config.fb + '/content/posts').startAt(null, 1).endAt(null, 5) 
and 
new Firebase(config.fb + '/content/posts').startAt(1).endAt(5) 

Hier ist die zwei Beispiel-Säulen ':

{ 
    -KDa3Ml3gMcljX6ojEs3: { 
     title: 'Example post 3', 
     body: 'This is a test' 
    }, 
    -KDa3NLvBpLzXMC0npI_: { 
     title: 'Example post 3', 
     body: 'This is a test' 
    } 
} 
+0

Worauf beziehen sich '1' und' 5'? Sind sie Schlüssel, Prioritäten oder der Wert einer bestimmten Eigenschaft? –

+0

Ich versuche nur, eine Reihe von Posts abzurufen, beginnend mit dem ersten Schlüssel (1) bis zum letzten Schlüssel (5). Die 'Posts' wurden gepusht, so dass sie nach einer eindeutigen ID geordnet sind. Wenn das Sinn macht. –

+0

Ich habe versucht zu antworten, aber es ist im Moment ziemlich unterspezifiziert. Fügen Sie ein Snippet des JSON (als Text, kein Screenshot) hinzu und fügen Sie den genauen Code hinzu, den Sie gegen dieses Snippet ausprobiert haben. –

Antwort

2

Dies sollte funktionieren:

var posts = new Firebase(config.fb + '/content/posts').orderByKey().startAt(1).endAt(5); 
$scope.posts = $firebaseArray(posts); 

Alternativ können Sie sie mit so etwas wie drucken können:

var posts = new Firebase(config.fb + '/content/posts').orderByKey().startAt(1).endAt(5); 
posts.on('value', function(snapshot) { 
    snapshot.forEach(function(child) { 
    console.log(child.val()); 
    }); 
}); 

Update (basierend auf n die zusätzlichen Informationen zur Verfügung gestellt Sie):

kann Firebase Abfrage auf:

  • der Schlüssel der Elemente
  • der Wert der Gegenstände
  • der Wert eines Kindes Eigentum der Artikel

Es kann nicht Abfrage auf den Index der Elemente, wie Sie scheinen zu versuchen, zu tun. Der einzige Weg, das zu tun wäre:

  • Verwendung dieser Index als Schlüssel der Elemente
  • den Index als der Wert eines Kindes Eigentum der Elemente hinzufügen

Wenn Sie versuchen, Um dies zu tun, werden Sie auf den Grund stoßen, warum Firebase dies nicht unterstützt: Es ist unglaublich schwierig, solche indexbasierten Operationen für eine massive Mehrbenutzeranwendung zu skalieren. Eine ausführlichere Erläuterung des Themas finden Sie unter arrays in Firebase.

+0

Ich bekomme angular.js: 13294 Fehler: Abfrage: Bei der Bestellung per Schlüssel muss das an startAt(), endAt() oder equalTo() übergebene Argument eine Zeichenfolge sein. –

+0

Hinweis, die Tasten sind "gedrückt" –

+0

Ich fügte einen Screenshot der Daten –