2016-03-24 1 views
0

Comment puis-je saisir une série d'enfants (comme le second enfant, jusqu'à la cinquième.) En utilisant une requête dans Firebase? J'ai essayé des trucs comme:Firebase/AngularFire - Saisir une série d'enfants

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

Voici le deux exemples 'postes':

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

Que signifient «1» et «5» ici? Sont-ils des clés, des priorités ou la valeur d'une propriété spécifique? –

+0

J'essaye juste d'attraper une série de publications commençant par la première clef qui apparaît (1) à la dernière clef (5). Les 'posts' ont été poussés donc il est commandé par un identifiant unique. Si ça a du sens. –

+0

J'ai essayé de répondre, mais c'est assez sous-spécifié pour le moment. Ajoutez un extrait du fichier JSON (sous forme de texte, pas de capture d'écran) et ajoutez le code exact que vous avez essayé d'ajouter à cet extrait. –

Répondre

2

Cela devrait fonctionner:

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

Vous pouvez les imprimer avec quelque chose comme:

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()); 
    }); 
}); 

Mise à jour (basée sur n les informations supplémentaires que vous a fourni):

Firebase peut interroger sur:

  • la clé des éléments
  • la valeur des éléments
  • la valeur d'une propriété enfant des articles

Il ne peut pas requête sur l'index des éléments que vous semblez essayer de faire. La seule façon de le faire serait de:

  • utilisation de cet indice comme la clé des éléments
  • ajouter l'indice comme la valeur d'une propriété enfant des articles

Si vous essayez Pour faire l'un ou l'autre, vous découvrirez pourquoi Firebase ne supporte pas cela: il est incroyablement difficile de faire évoluer ces opérations basées sur l'index pour une application massivement multi-utilisateur. Pour une explication plus large du sujet, voir arrays in Firebase.

+0

Je reçois angular.js: 13294 Erreur: Requête: Lors de la commande par clé, l'argument passé à startAt(), endAt() ou equalTo() doit être une chaîne. –

+0

Remarque, les touches sont «poussés» –

+0

J'ai ajouté une capture d'écran des données –