leejaerim / Magpie

Magpie FJD
0 stars 0 forks source link

[Important] Pagination. #20

Closed leejaerim closed 1 year ago

leejaerim commented 1 year ago

in Payment list

leejaerim commented 1 year ago

페이지네이션

과정

// Query the first page of docs const first = query(collection(db, "cities"), orderBy("population"), limit(25)); const documentSnapshots = await getDocs(first);

// Get the last visible document const lastVisible = documentSnapshots.docs[documentSnapshots.docs.length-1]; console.log("last", lastVisible);

// Construct a new query starting at this document, // get the next 25 cities. const next = query(collection(db, "cities"), orderBy("population"), startAfter(lastVisible), limit(25));


- 공식문서를 참조했음에도 불구하고 `startAfter, endBefore`를 사용한 이전, 다음 페이지만 구현이 가능했고, 
각 페이지로 이동할 수 있는 기능에 대한 목적에 맞지 않았습니다.
- 따라서 모든 `datamap`을 쿼리로 가져오되, `index`에 맞게 `slice` 하도록 구현하였습니다.
**_- `datamap`이 충분히 클 경우에, 브라우저의 성능 저하를 줄 수 있음을 인지하고 있습니다._**
- `pagination` 부분은 구독형이 아닌 단순 쿼리형으로 결재내역을 새로 업데이트 하지 않습니다.