Firebase Firestore startAfter(),如何知道何时不再加载

Firebase Firestore startAfter(),如何知道何时不再加载,firebase,vue.js,google-cloud-firestore,Firebase,Vue.js,Google Cloud Firestore,刚刚第一次实现startAfter。然而,我四处搜索了一下,却找不到一个问题的答案 使用start after时,如果没有更多文档要加载,如何最好地处理 我是否应该在每次启动load more函数时获取集合的文档总长度。检查总电流与电流,如果它们相等,是否禁用加载更多功能 如果是,我如何找到收集文档的总数 我是否应该在每次启动load more函数时获取集合的文档总长度 不需要。当我们创建分页算法时,我们总是希望以较小的数据块加载数据。在Firestore中,我们总是对得到的每个新块的大小感兴趣

刚刚第一次实现startAfter。然而,我四处搜索了一下,却找不到一个问题的答案

使用start after时,如果没有更多文档要加载,如何最好地处理

我是否应该在每次启动load more函数时获取集合的文档总长度。检查总电流与电流,如果它们相等,是否禁用加载更多功能

如果是,我如何找到收集文档的总数

我是否应该在每次启动load more函数时获取集合的文档总长度

不需要。当我们创建分页算法时,我们总是希望以较小的数据块加载数据。在Firestore中,我们总是对得到的每个新块的大小感兴趣。因此,基本上,如果新块的大小小于我们设置的限制,例如,每页10个项目,那么此时您应该禁用load more函数

因此,您可以请求一定大小的数据页。这里有一个名为limitX的有用方法,可以帮助您实现这一点。因此,您可以执行查询并获得一个大小为X的页面。只需使用另一个大小为X的页面继续该查询,依此类推。因此,您从第1页开始,然后使用相应的方法遍历页面,在这些方法中,您应该指定页面上的最后一个文档,然后继续获取下一页,直到没有元素为止

如果是,我如何找到收集文档的总数

你需要担心的不是集合中文档的数量,而是下一页中的项目数量

我是否应该在每次启动load more函数时获取集合的文档总长度

不需要。当我们创建分页算法时,我们总是希望以较小的数据块加载数据。在Firestore中,我们总是对得到的每个新块的大小感兴趣。因此,基本上,如果新块的大小小于我们设置的限制,例如,每页10个项目,那么此时您应该禁用load more函数

因此,您可以请求一定大小的数据页。这里有一个名为limitX的有用方法,可以帮助您实现这一点。因此,您可以执行查询并获得一个大小为X的页面。只需使用另一个大小为X的页面继续该查询,依此类推。因此,您从第1页开始,然后使用相应的方法遍历页面,在这些方法中,您应该指定页面上的最后一个文档,然后继续获取下一页,直到没有元素为止

如果是,我如何找到收集文档的总数


您需要担心的不是集合中文档的数量,而是下一页中的项目数量。

您可以做的是将最后一个可见文档保存到一个变量中,如下所示

lastVisible = querySnapshot.docs[querySnapshot.docs.length - 1]

您可以做的是将最后一个可见文档保存到一个变量中,如下所示

lastVisible = querySnapshot.docs[querySnapshot.docs.length - 1]

回答得好@alexmamo!如果可以的话,我想补充一点,为了找到托收文档的总计数,您应该查询明显不推荐的整个托收,或者维护一个文档计数器,例如使用。但是正如你所说,分页不需要这个。我也很确定如果你从一个限制为10个的集合中请求文档,而这个集合只有10个文档,并且你使用startAfter和最后一个文档来获取第二页,因为查询返回了0个文档,所以第二次加载更多查询不会收取任何读取费用。@RenaudTarnec感谢Renaud的评论。了解这些分布式计数器真的很有帮助。@samthecodingman有,即使查询不产生任何文档!我能帮你了解其他信息吗?如果你认为我的回答对你有帮助,请考虑接受。✔️. 我真的很感激。谢谢回答得好@alexmamo!如果可以的话,我想补充一点,为了找到托收文档的总计数,您应该查询明显不推荐的整个托收,或者维护一个文档计数器,例如使用。但是正如你所说,分页不需要这个。我也很确定如果你从一个限制为10个的集合中请求文档,而这个集合只有10个文档,并且你使用startAfter和最后一个文档来获取第二页,因为查询返回了0个文档,所以第二次加载更多查询不会收取任何读取费用。@RenaudTarnec感谢Renaud的评论。了解这些分布式计数器真的很有帮助。@samthecodingman有,即使查询不产生任何文档!我能帮你了解其他信息吗?如果你认为我的回答对你有帮助,请考虑接受。✔️. 我真的很感激。谢谢