Firestore查询未与startAfter运行

时间:2020-07-25 16:06:04

标签: javascript google-cloud-firestore

我有以下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();

1 个答案:

答案 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();