ブログがあり、今日、過去7日間、過去30日間の好きな、または共有された投稿をリストしたいとします。Firebase:最後のn日間に最も共有された投稿のデータを構造化する方法は?
今日のためのソリューションはかなり簡単です:
-mostSharedPostsForToday
-2018-10-08
-$postId
-numberOfShares
その後のクエリは、子供numberOfShares
が注文した今日の最も共有投稿をmostSharedPostsForToday/2018-10-08
を観察します。
しかし過去n日間に最も共有された投稿のデータを構造化するにはどうすればよいですか?
1つの解決策は、毎日ノードmostSharedPostsForThePastNDays
に値を設定するクラウド関数を記述することです。しかし、それは私にとって面倒なようです。もっと効率的な方法はありませんか?
編集:第1の回答のコメントで指摘したように、トラフィックを節約するためにページネーションをサポートする必要があります。
あなたの答えに感謝しますが、あなたのアプローチでは、Firebaseは複数の値による順序付けをサポートしていないため、共有の数でソートすることはできません。並べ替えはページネーションに役立ちます。最初にトップ5だけを表示し、次に5を表示します。 – MJQZ1347
複数の注文方法を使用することはできませんが、これを達成することはできます。この[ビデオ](https://www.youtube.com/watch?v=sKFLI5FOOHs&index=4&list=PLl-K7zZEsYLlP-k-RKFa7RyNPa9_wCH2s=5#t=9m03s)をご覧ください。あなたの場合は、 'TIMESTAMP_numberOfShares'を使用する必要があります。 –
'TIMESTAMP_numberOfShares'(たとえば' 2018-01-01_100')で試してみましたが、残念ながら降順でソートする方法はありません。値の否定は文字列型であるため不可能です。 – MJQZ1347