ページネーションで「戻る」場合はLimitToLastを使う
2022年04月18日 17:17
こんにちは、ISSUEの寒河江です。
先日実装したfirestore × Goでページネーションを実装するで「戻る」ページネーションの実装方法についてもお伝えいたしました。その中でなぜLimitToLast
を使ったかを詳しくご説明できればと思います。
「戻る」を実装する場合は、LimitToLast
を利用して最後からデータを取得する
実例交えて説明します。
Limitは下記の 「通常」 のように、updateAtの降順で新しいものからLimitした分だけデータを3件取得します。
これはStartAfter
の時はうまく機能します。下記の 「次へ」 のケースに注目します。StartAfterで指定したupdateAt以降のデータを取得。その後、Limitで更新の新しいものから3件を取得します。これは更新順の古いデータをもう10件取得するというような「次へ」のページネーションの要件を満たしています。
しかし、「戻る」ページネーション実装では機能しません。下記の 「戻る」 のケースに注目します。EndBefore
を利用する場合、Limitを利用してもEndBeforeからは取得されません。order byでソートしたupdateAtの降順で取得してしまいます。
解決策としてはLimitToLast
を利用しましょう。LimitToLastは取得した最後の要素から指定した分データを取得します。EndBeforeを使用した場合も古いデータからデータを取得してくれます!
以上、ページネーションで「戻る」場合はLimitToLastを使う、でした!
診断を受けるとあなたの現在の業務委託単価を算出します。今後副業やフリーランスで単価を交渉する際の参考になります。また次の単価レンジに到達するためのヒントも確認できます。