我在Firebase服务器中有一系列歌曲。
每首歌都有lastCommentAt
属性,这是时间戳。
我想按照距离当前时间最近的lastCommentAt
时间检索歌曲顺序。
这是我的Firebase规则:
{
"rules": {
".read": true,
".write": "auth != null",
"songs": {
".indexOn": ["lastCommentAt"]
}
}
}
我无法使用 orderByChild()。它造成了奇怪的问题:
不正确的订单
loadMore()在循环中加载相同的2首歌曲。这意味着无限 歌曲列表。
答案 0 :(得分:0)
我怀疑您的问题的根本原因是startAt()
与orderByChild()
结合使用时对效果缺乏了解。有关详细信息,请阅读Firebase documentation on queries。
如果使用orderByChild("lastCommentAt")
,则startAt()
函数会将不应用于实例的ID,但会应用于每个实例的lastCommentAt
属性。
因此,一旦您添加了orderByChild("lastCommentAt")
,则startAt()
需要将第一个参数作为您要获取的第一个lastCommentAt
值,第二个参数是最后一个lastCommentAt
1}}你想得到的价值。