【发布时间】:2017-02-22 14:50:41
【问题描述】:
我想一个接一个地获得UpVotes最多的最受欢迎的帖子。
this.nextPostObservableList= this.af.database.list('/listOfPost',{
query :{
orderByChild : 'postUpvote',
limitToLast : 2,
endAt : this.currentPost.postUpvote
}
});
在这种情况下,如果我使用 postUpvote orderByChild,我可以一个接一个地导航。但是,如果多个帖子具有相同的 upVote 计数,那么我将无法导航(根据上面的代码 sn-p,大于 2)。在以下场景中超出 post2。请提出解决方案。
{
"post1" : {
"postUpvote" : 10,
"postname" : "sample 1"
},
"post2" : {
"postUpvote" : 10,
"postname" : "Sample 2"
},
"post3" : {
"postUpvote" : 20,
"postname" : "sample3"
},
"post4" : {
"postUpvote" : 10,
"postname" : "sample4"
}
}
【问题讨论】:
-
Hmm... Firebase SDK 有一个
endAt用于此目的,它需要一个额外的参数(开始的项目的键)。我不确定它是否包含在 AngularFire2 中。 -
嗨,弗兰克,根据 endAt 中的文档关键参数,仅当 OrderBy 使用 priority 完成时才有效。 :( .link
-
我很确定我已经使用 orderByChild() 测试了关键参数。可以试试吗?
-
@FrankvanPuffelen - 是的,AngularFire2 不支持
startAt和endAt的可选参数:github.com/angular/angularfire2/issues/362(相关来源是here) -
是的,它似乎还不支持。让我尝试直接使用firebase javascript sdk。
标签: firebase firebase-realtime-database angularfire2