我有一個 Json 資料,它按使用的最高查看次數排序
OrderBy("Views").LimitToLast(10)
除了一個之外,所有元素都具有相同的 (Views) 值。
這是沒有添加特定限制的完整 Json 資料:
https://ameen-66522.firebaseio.com/Main/News/Categories/Education/.json?print=pretty&orderBy="Views"
{
"-Mn7-ZxkUPO01dxifhtpEn" : {
"Views" : 20
},
"-Mn7-ZxkUPO01iddfh2tpEn" : {
"Views" : 20
},
"-Mn7-ZxkUPO01idsdfh2tpEn" : {
"Views" : 20
},
"-Mn7-ZxkUPO01idsdfhtpEn" : {
"Views" : 20
},
"-Mn7-ZxkUPO01idxfh2tpEn" : {
"Views" : 20
},
"-Mn7-ZxkUPO01ifddhtpEn" : {
"Views" : 50
},
"-Mn7-ZxkUPO01ifdshtpEn" : {
"Views" : 20
},
"-Mn7-ZxkUPO01ifh21tpEn" : {
"Views" : 20
},
"-Mn7-ZxkUPO01ifh2dstpEn" : {
"Views" : 20
},
"-Mn7-ZxkUPO01ifh2tpEdsn" : {
"Views" : 20
},
"-Mn7-ZxkUPO01ifh2tpEn" : {
"Views" : 20
},
"-Mn7-ZxkUPO01ifh2txpEn" : {
"Views" : 20
},
"-Mn7-ZxkUPO01ifhds2tpEn" : {
"Views" : 20
},
"-Mn7-ZxkUPO01ifhewtpEn" : {
"Views" : 20
},
"-Mn7-ZxkUPO01ifhtdxpEn" : {
"Views" : 20
}
}
當我使用
OrderBy("Views").LimitToLast(10)
它將正確獲取前 10 個元素,最后的 Id 將是
-Mn7-ZxkUPO01ifddhtpEn
它與其他資料具有不同的價值
這里的回應結果:
https://ameen-66522.firebaseio.com/Main/News/Categories/Education/.json?print=pretty&orderBy="Views"&limitToLast=10
現在假設當我從lastId開始獲取剩余資料時
-Mn7-ZxkUPO01ifddhtpEn
和
最后值
50
It will return the remaining data correctly even in fact it will return data that was fetched in the first 10 and this problem occurs when all the data carry the same value of views except for only one different.
https://ameen-66522.firebaseio.com/Main/News/Categories/Education/.json?print=pretty&orderBy="Views"&limitToLast=11&endAt=50,"-Mn7-ZxkUPO01ifddhtpEn"
{
"-Mn7-ZxkUPO01idxfh2tpEn" : {
"Views" : 20
},
"-Mn7-ZxkUPO01ifddhtpEn" : {
"Views" : 50
},
"-Mn7-ZxkUPO01ifdshtpEn" : {
"Views" : 20
},
"-Mn7-ZxkUPO01ifh21tpEn" : {
"Views" : 20
},
"-Mn7-ZxkUPO01ifh2dstpEn" : {
"Views" : 20
},
"-Mn7-ZxkUPO01ifh2tpEdsn" : {
"Views" : 20
},
"-Mn7-ZxkUPO01ifh2tpEn" : {
"Views" : 20
},
"-Mn7-ZxkUPO01ifh2txpEn" : {
"Views" : 20
},
"-Mn7-ZxkUPO01ifhds2tpEn" : {
"Views" : 20
},
"-Mn7-ZxkUPO01ifhewtpEn" : {
"Views" : 20
},
"-Mn7-ZxkUPO01ifhtdxpEn" : {
"Views" : 20
}
}
it is supposed to return :
{
"-Mn7-ZxkUPO01dxifhtpEn" : {
"Views" : 20
},
"-Mn7-ZxkUPO01iddfh2tpEn" : {
"Views" : 20
},
"-Mn7-ZxkUPO01idsdfh2tpEn" : {
"Views" : 20
},
"-Mn7-ZxkUPO01idsdfhtpEn" : {
"Views" : 20
},
"-Mn7-ZxkUPO01idxfh2tpEn" : {
"Views" : 20
},
"-Mn7-ZxkUPO01ifddhtpEn" : {
"Views" : 50
}
Thanks for the help :) I appreciate your work
uj5u.com熱心網友回復:
據我所知,當您按查看次數排序時,此節點是 JSON 中的最后一個:
"-Mn7-ZxkUPO01ifddhtpEn" : {
"Text" : 6,
"Title" : "some title",
"Views" : 50
},
因此,當您執行以下查詢時:orderBy="Views"&limitToLast=10,您是在按Views計數排序時要求最后 10 個節點。
然后,您在下一個查詢中使用最后一個節點的鍵:orderBy="Views"&limitToLast=11&endAt=50,"-Mn7-ZxkUPO01ifddhtpEn",所以現在您已經要求以最后一個節點結尾的最后 11 個節點。endAt就我所見,該條款是多余的,這與orderBy="Views"&limitToLast=11 相同。
這里要記住的是,您要從資料集的末尾向后分頁。所以要從底部得到第二頁,你需要知道最后一頁第一項的Views key 。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/371388.html
標籤:firebase firebase-realtime-database
上一篇:顯示未定義的值
