データが数百件ほど入っているコレクションがあったとします。
そこからlimit()を使って一定件数づつ取得して、それを順番に繰り返したいです。いわゆるページングですね。
JavaScript
1const documentSnapshots = await fireStore.collection('path').limit(10).get(); 2console.log(snapshot.size); // 最後の取得までは必ず10になって欲しいが、なる時もあるし、ならない時もある 3const lastVisible = documentSnapshots.docs[documentSnapshots.docs.length - 1]; 4 5const documentSnapshots2 = await fireStore.collection('path').limit(10).startAfter(lastVisible).get(); 6 7// これを取得できなくなるまで続ける
10件づつ取得しているので、データが99件あるとするならば、イメージではsize=10が9回続き、最後にsize=9になるイメージです。
ところが実際にはこの取得件数はもっとまちまちで、取得件数が10でないからといって、それが最後というわけではないようです。
この挙動はあまり直感的ではなく、またページングする一覧のUIを作ったときに件数がまばらになって問題なのですが、通常こういう挙動なのでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/21 08:03
2020/09/21 08:16 編集
2020/09/22 01:17