Firebase / AngularFire - 抓住一系列儿童

时间:2016-03-24 02:51:34

标签: firebase angularfire

如何使用Firebase中的查询获取一系列孩子(例如第二个孩子,到第五个孩子)?我尝过这样的话:

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

以下是两个示例'

;

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

1 个答案:

答案 0 :(得分:2)

这应该有效:

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