flutter - firestore.instance.runtransaction((事务)异步不起作用
问题描述
我尝试从本教程制作应用程序:
https://codelabs.developers.google.com/codelabs/flutter-firebase
我被困在第 11 步,因为
Firestore.instance.runTransaction((transaction) async
不会工作。
我应该怎么办?
这是我到目前为止所做的代码:
Widget _buildListItem(BuildContext context, DocumentSnapshot data) {
final record = Record.fromSnapshot(data);
return Padding(
key: ValueKey(record.name),
padding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 8.0),
child: Container(
decoration: BoxDecoration(
border: Border.all(color: Colors.grey),
borderRadius: BorderRadius.circular(5.0),
),
child: ListTile(
title: Text(record.name),
trailing: Text(record.votes.toString()),
onTap: () {
print("123");
Firestore.instance.runTransaction((transaction) async {
print("456");
final freshSnapshot = await
transaction.get(record.reference);
final fresh = Record.fromSnapshot(freshSnapshot);
final Map<String, dynamic> json = HashMap<String, dynamic>();
json['name'] = fresh.name;
json['votes'] = fresh.votes + 1;
print(fresh.name);
await transaction.update(record.reference, json);
});
},
),
),
);
}
}
解决方案
推荐阅读
- python - 一个变量是函数的局部变量,只要它的值写在函数内部的任何地方?
- angular - 未捕获(承诺中):错误:模块“ModalModule”导入的意外值“Ng2SmartTableModule”。请添加@NgModule 注释
- google-analytics - URL 欺骗是否会导致 Google Analytics(分析)中出现峰值
- google-sheets - 谷歌表格雷达图的中心轴不为零
- swift - 我怎么能把这个变量赋值函数变成一个循环?
- python - 将数据从 pythom 传输到 html 不起作用
- python - 输入列表后如何计算平均值和范围?
- javascript - 我不想创建另一个数据库表来过滤谁是团队谁是朋友,请帮帮我
- ios - Apple 工资单未显示给 Apple 应用审查员
- reactjs - 关键帧在嵌套 SVG 中不起作用,但在单个 SVG 中起作用