首页 > 解决方案 > 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);
            });
        },
        ),
        ),
        );
    }
}

标签: flutter

解决方案


推荐阅读