flutter - 如何计算 querySnapshot 的总和?带有颤振/云火库
问题描述
我成功地从 Cloud Firestore 读取数据,但我不知道如何计算文档中的值的总和。
这是我获取文档数据的方式:
firestoreInstance.collection("parrainage").get().then((querySnapshot) {
querySnapshot.docs.forEach((result) {
print("${result.data() } "); // my input
});
});
{
key1: 1,
key2: 1,
key3: 1,
key4: 1,
key5: 1
}
这是我期望的输出:
sum= 5;
如果我在第一个集合中使用它,它返回 1 而不是 2:
final sum = result.data().values.fold<int>(0, (acc, curr) => acc + curr));
print('sum=$sum');
但是,如果我使用与第二个示例相同的代码它可以工作,但是我手动添加数据,我没有成功以编程方式添加此数据
谢谢你
解决方案
您可以使用折叠方法:
如果result.data()
是Map<String, int>
:
final sum = result.data().values.fold<int>(0, (acc, curr) => acc + curr));
print('sum=$sum');
包含静态数据的完整样本
void main() {
final Map<String, int> data = {
'key1': 1,
'key2': 0,
'key3': 1,
'key4': 1,
'key5': 1,
};
final sum = data.values.fold<int>(0, (acc, curr) => acc + curr);
print('sum=$sum');
}
这打印sum=4
。