作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想使用flutter在firebase上计算创建的任务总数。有没有办法使用flutter做到这一点,我必须使用java和swift来完成此功能。这就是我存储任务的方式,它们是由Firebase(ID)生成的。
在实时数据库中完成
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<void> refreshTasks(BuildContext context) async {
await Provider.of<Tasks>(context,listen: false).totalCompletedTask();
}
Text( refreshTasks.toString())
最佳答案
您可以遍历每个文档,并检查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/
我是一名优秀的程序员,十分优秀!