[英]How to get the previous document in Firestore
我想瀏覽我的 firestore 收藏的下一篇和上一篇文章。 我已經設置了下一篇文章功能。 但是我不能做以前的功能。
這是我的下一個帖子查詢:
firestore()
.collection('Posts')
.orderBy(firestore.FieldPath.documentId())
.startAfter(this.state.currentDoc)
.limit(1)
但遺憾的是,firestore 不適用於.orderBy(firestore.FieldPath.documentId(), 'desc')
我試過:
firestore()
.collection('Posts')
.orderBy(firestore.FieldPath.documentId())
.limit(1)
它轉到集合的第一個文檔。 添加升序在這里不再起作用。
如果需要任何進一步的信息,請告訴我。
編輯:
根據答案,這就是我正在嘗試的內容,而不是 id,我使用的是帖子創建時的時間。 時間格式如下: 1625511322000
firestore()
.collection('Posts')
.orderBy('time', 'desc')
.startAfter(this.state.currentDoc)
.limit(1)
.startAfter()
方法也應該按降序執行。
firestore()
.collection('Posts')
.orderBy("docID", "desc")
.startAfter(this.state.currentDoc)
.limit(1)
假設您有 4 個文檔:Doc1、Doc2、Doc3 和 Doc4。
在第一種情況下,在 startAfter 中傳遞startAfter
將返回 Doc3。 (假設 DocID 按升序排列)。 與上startAfter
文章類似,您可以按降序對列表進行排序並使用startAfter
,它應該返回Doc1
。
但是,您似乎無法使用本答案中提到的文檔 ID 按降序對文檔進行排序。 因此,您必須將文檔 ID 作為字段存儲在文檔中,然后按如下方式對其進行排序:
.orderBy("docID", "desc")
如果您嘗試使用文檔 ID 按降序排序,您最終會收到一個錯誤提示,提示您創建索引但您無法創建它。 Firestore 控制台將返回錯誤, “不支持僅名稱索引”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.