gpt4 book ai didi

firebase - 计算基于id抖动在firebase上创建的总任务

转载 作者:行者123 更新时间:2023-12-03 04:49:07 25 4
gpt4 key购买 nike

我想使用flutter在firebase上计算创建的任务总数。有没有办法使用flutter做到这一点,我必须使用java和swift来完成此功能。这就是我存储任务的方式,它们是由Firebase(ID)生成的。

在实时数据库中完成

enter image description here

final tasksData = Provider.of<Tasks>(context);
final tasks = tasksData.tasks;
print(tasks.length); // total tasks

Future<void> fetchAndSetProducts() async {
const url = 'https://firebaselink.firebaseio.com/tasks.json';
try {
final response = await http.get(url);
final extractedData = json.decode(response.body) as Map<String, dynamic>;
final List<TodoList> loadedTasks = [];
extractedData.forEach((taskId, taskData) {
loadedTasks.add(TodoList(
id: taskId,
name: taskData['name'],
description: taskData['description'],
date: DateTime.parse(taskData['date']),
filename: taskData['filename'],
location: taskData['location'],
isCompleted: taskData['isCompleted'],
notes: taskData['notes'],
));
});
_tasks = loadedTasks;
notifyListeners();
} catch (error) {
print(error);
throw (error);
}
}

List<TodoList> _tasks = [];

List<TodoList> get tasks {
return [..._tasks];
}

进一步的问题在“文本”小部件中显示 future
  Future<void> refreshTasks(BuildContext context) async {
await Provider.of<Tasks>(context,listen: false).totalCompletedTask();
}

Text( refreshTasks.toString())

错误:
明白啦:
关闭:(BuildContext)=>将来

最佳答案

您可以遍历每个文档,并检查isCompleted是否为true,然后增加totalTrue变量的值,该变量将保存总的true计数。

以下方法将为您工作。

 getCount() async {
int totalcount = 0;
await FirebaseDatabase.instance
.reference()
.child("tasks")
.once()
.then((DataSnapshot snapshot) {
Map<dynamic, dynamic> data = snapshot.value;
data.forEach((key, value) {
if (value['isCompleted']) {
totalcount++;
}
});
});

print(totalcount);
}

更新:
Future<int> fetchAndSetProducts() async {
const url = 'https://firebaselink.firebaseio.com/tasks.json';
try {
int totalcount = 0;

final response = await http.get(url);
final extractedData = json.decode(response.body) as Map<String, dynamic>;
extractedData.forEach((taskId, taskData) {
if (taskData['isCompleted']) {
totalcount++;
}
});
print(totalcount);
return totalcount;
} catch (error) {
print(error);
throw (error);
}
}

关于firebase - 计算基于id抖动在firebase上创建的总任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61708262/

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