我如何通过仅支付一个查询过程的费用来获取位于特定集合中的文档数量
How can i get the number of docs located in specific collection by only paying for one query process
当然,我可以通过下面的代码知道如何获取文档数:
handledocsNumber(){
Future<QuerySnapshot<Map<String, dynamic>>> number = FirebaseFirestore.instance.collection("users").get();
number.then((value) {
int docsNumber = value.docs.length;
});
}
但如果集合中有大量文档,这听起来很可怕,因为如果此方法持续用于用户目的,.get()
会将整个文档视为特殊的新读物。我只是想象文档是 100.000,这意味着每次用户需要知道长度时,.get()
将始终读取 100.000 个文档作为新阅读。
有什么好的方法可以通过只支付一个查询过程即长度过程来了解长度?
any good way to know the length by only paying for one query process which is the length process?
是的,您可以在文档中保留一个计数器,并在将新文档添加到集合后递增该值。如果您删除一个文档,则只需将其递减即可。这样就可以读取单个文档的计数器了。
当然,我可以通过下面的代码知道如何获取文档数:
handledocsNumber(){
Future<QuerySnapshot<Map<String, dynamic>>> number = FirebaseFirestore.instance.collection("users").get();
number.then((value) {
int docsNumber = value.docs.length;
});
}
但如果集合中有大量文档,这听起来很可怕,因为如果此方法持续用于用户目的,.get()
会将整个文档视为特殊的新读物。我只是想象文档是 100.000,这意味着每次用户需要知道长度时,.get()
将始终读取 100.000 个文档作为新阅读。
有什么好的方法可以通过只支付一个查询过程即长度过程来了解长度?
any good way to know the length by only paying for one query process which is the length process?
是的,您可以在文档中保留一个计数器,并在将新文档添加到集合后递增该值。如果您删除一个文档,则只需将其递减即可。这样就可以读取单个文档的计数器了。