gpt4 book ai didi

firebase - Flutter 从 Firebase 返回文档的长度

转载 作者:IT王子 更新时间:2023-10-29 06:54:27 26 4
gpt4 key购买 nike

我试图用这个函数返回文档列表的长度:

Future totalLikes(postID) async {
var respectsQuery = Firestore.instance
.collection('respects')
.where('postID', isEqualTo: postID);
respectsQuery.getDocuments().then((data) {
var totalEquals = data.documents.length;
return totalEquals;
});
}

我将其初始化为 void init 状态(使用另一个函数调用:

void initState() {

totalLikes(postID).then((result) {
setState(() {
_totalRespects = result;
});
});


}

但是,当它运行时,它最初返回一个空值,因为它没有时间完全完成。我曾尝试在 Future 函数中调用 Firestore 之前发出“等待”,但出现“仅等待 future ”的编译错误。

谁能帮助我理解如何在设置“_totalRespsects”状态之前等待此函数完全返回非空值?

谢谢!

最佳答案

我想你正在寻找这个:

Future totalLikes(postID) async {
var respectsQuery = Firestore.instance
.collection('respects')
.where('postID', isEqualTo: postID);
var querySnapshot = await respectsQuery.getDocuments();
var totalEquals = querySnapshot.documents.length;
return totalEquals;
}

请注意,这加载了所有文档,只是为了确定文档的数量,这是非常浪费的(尤其是当您获得更多文档时)。考虑在维护计数的地方保留一个文档作为一个字段,这样您只需阅读一个文档即可获得计数。参见 aggregation queriesdistributed counters在 Firestore 文档中。

关于firebase - Flutter 从 Firebase 返回文档的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53255318/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com