Firebase/AngularFire-抓住一系列儿童

Firebase/AngularFire-抓住一系列儿童,firebase,angularfire,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:{ 标题:“示例帖子3”, 正文:“这是一个

如何在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:{
标题:“示例帖子3”,
正文:“这是一个测试”
}, 
-KDa3NLvBpLzXMC0npI_389;:{
标题:“示例帖子3”,
正文:“这是一个测试”
}
}
这应该可以:

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不支持此操作的原因:对于大规模多用户应用程序,扩展此类基于索引的操作非常困难。有关该主题的更广泛解释,请参阅。

这应该可以:

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不支持此操作的原因:对于大规模多用户应用程序,扩展此类基于索引的操作非常困难。有关该主题的更广泛解释,请参见。

此处的
1
5
指什么?它们是键、优先级还是特定属性的值?我只是想抓住一系列帖子,从出现的第一个键(1)到最后一个键(5)。推送的“posts”由一个唯一的id进行排序。如果这有意义的话。我试着回答,但目前还没有具体说明。添加一个JSON片段(作为文本,没有屏幕截图),并添加您针对该片段尝试的确切代码。
1
5
在这里指的是什么?它们是键、优先级还是特定属性的值?我只是想抓住一系列帖子,从出现的第一个键(1)到最后一个键(5)。推送的“posts”由一个唯一的id进行排序。如果这有意义的话。我试着回答,但目前还没有具体说明。添加一个JSON片段(作为文本,没有屏幕截图),并添加您针对该片段尝试过的确切代码。我变得有角度。js:13294错误:查询:按键排序时,传递给startAt()、endAt()或equalTo()的参数必须是字符串。注意,键是“按下”的。我添加了一个数据的屏幕截图,刚刚看到它。。我添加了一个文本版本tooI'm Get angular.js:13294错误:查询:按键排序时,传递给startAt()、endAt()或equalTo()的参数必须是字符串。注意,键是“按下”的。我添加了一个数据的屏幕截图,我刚刚看到了它。。我也添加了一个文本版本