Firebase / AngularFire - 抓取一系列子项

Firebase / AngularFire - Grabbing a range of children

如何使用 Firebase 中的查询获取一定范围内的子项(例如第二个子项到第五个)?我尝试过类似的东西:

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

这是两个例子 'posts':

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

这应该有效:

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

或者,您可以使用类似以下内容打印它们:

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

更新(根据您提供的附加信息):

Firebase 可以查询:

  • 项目的关键
  • 物品的价值
  • 子项的值 属性

不能 查询项目的索引,就像您试图做的那样。唯一的方法是:

  • 使用该索引作为项目的关键字
  • 添加索引作为项目的子项 属性 的值

如果您尝试执行其中任何一项,您将 运行 了解 Firebase 不支持此功能的原因:为大量多用户扩展此类基于索引的操作非常困难应用。有关该主题的更广泛的解释,请参阅 arrays in Firebase