str*_*rks 5 firebase reactjs google-cloud-firestore
当我使用日期(firebase 时间戳)检索数据时,我很难使分页正常工作。
这基本上就是我所做的:
let jobsRef = db.collection("jobs")
.orderBy('createdAt', 'desc')
.limit(QUERY_LIMIT);
jobsRef = jobsRef.startAfter(this.props.jobs[this.props.jobs.length - 1].createdAt);
Run Code Online (Sandbox Code Playgroud)
然而,有时我似乎会收到刚收到的退货。我猜是因为日期相似?那么我怎样才能基本上返回按createdAt排序的作业列表并具有偏移/限制(分页)?
createdAt 看起来像时间戳类型:23 October 2020 at 17:26:31 UTC+2
当我记录createdAt但是我看到这个:{seconds: 1603537477, nanoseconds: 411000000}
也许我应该将createdAt存储为unix时间戳?或者说处理这个问题的理想方法是什么?
如果多个文档的排序字段可以具有相同的值,则传入该字段的值并不能保证指向唯一的文档。因此,您确实可能传递了一条不明确的指令,从而导致了不需要的结果。
如果可能,我强烈建议将整个文档传递给 Firestore API。这使得 Firestore 从该文档中获取必要的数据,以唯一/明确地找到查询的锚点。
所以而不是:
jobsRef.startAfter(this.props.jobs[this.props.jobs.length - 1].createdAt);
Run Code Online (Sandbox Code Playgroud)
做:
jobsRef.startAfter(this.props.jobs[this.props.jobs.length - 1]);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1344 次 |
| 最近记录: |