我有以下firestore查询,并且startAfter在此处不起作用。它不是从“之后开始”而是从头开始重新开始。任何帮助将不胜感激。
const messages = [],
f = Firebase.firestore()
.collection("chat")
.doc(chatId)
.withConverter(ChatMessageConverter)
.collection("messages")
.orderBy('creation_time', 'desc')
.limit(limit);
if (!_.isNull(lastActiveDoc))
f.startAfter(lastActiveDoc);
const snapshot = await f.get();
答案 0 :(得分:0)
调用startAfter(lastActiveDoc)
(或任何其他查询构建方法)时,它返回新查询。您必须确保调用该新查询。
最简单的方法是使用f = f.startAfter(lastActiveDoc); (因此,在其中添加了额外的f =,以便您使用新的查询。
所以:
f = Firebase.firestore()
.collection("chat")
.doc(chatId)
.withConverter(ChatMessageConverter)
.collection("messages")
.orderBy('creation_time', 'desc')
.limit(limit);
if (!_.isNull(lastActiveDoc))
f = f.startAfter(lastActiveDoc); // the change is in this line
const snapshot = await f.get();