我正在构建一个Flutter应用程序并使用Cloud Firestore。我想获取数据库中所有文档的数量。
我尝试过
Firestore.instance.collection('products').toString().length
但是没有用。
答案 0 :(得分:2)
Firebase并未正式提供任何功能来检索集合中的文档数量,而是可以获取该集合的所有文档并获取其长度。
有两种方法:
1)
var defaultManifestFilename="./assets/"+defaultModelName+"-weights_manifest.json";
这将返回一个int值。但是,如果您不使用await,它将返回一个Future。
2)
final int documents = await Firestore.instance.collection('products').snapshots().length;
这将返回int值。
但是,这两种方法都会获取集合中的所有文档并对其进行计数。
谢谢
答案 1 :(得分:1)
应为-Firestore.instance.collection('products').snapshots().length.toString();
答案 2 :(得分:1)
首先,您必须从该集合中获取所有文档,然后才能通过文档列表获取所有文档的长度。下面可以完成工作。
Firestore.instance.collection('products').getDocuments.then((myDocuments){
print("${myDocuments.documents.length}");
});
答案 3 :(得分:0)
以上建议将导致客户端下载集合中的所有文档以进行计数。解决方法是,如果不经常执行写操作,则可以将文档的长度放入Firebase远程配置中,并在从Firestore集合添加/删除文档时进行更改。然后,您可以在需要时从firebase远程配置中获取长度。
答案 4 :(得分:0)
Future getCount({String id}) async => Firestore.instance
.collection(collection) //your collectionref
.where('deleted', isEqualTo: false)
.getDocuments()
.then((value) {
var count = 0;
count = value.documents.length;
return count;
});
这是飞镖语言...
答案 5 :(得分:0)
由于您正在等待未来,因此必须将其放置在异步函数中
QuerySnapshot productCollection = await
Firestore.instance.collection('products').get();
int productCount = productCollection.size();
集合中的文档数量
答案 6 :(得分:-1)
Firestore.instance
.collection("products")
.get()
.then((QuerySnapshot querySnapshot) {
print(querySnapshot.docs.length);
});