Я обновляю свой документ этим кодом.
Future<void> save() async {
print('league save');
final DocumentReference ref =
Firestore.instance.collection('leagues').document(_documentName);
Firestore.instance.runTransaction((Transaction tx) async {
DocumentSnapshot postSnapshot = await tx.get(ref);
if (postSnapshot.exists) {
await tx.update(ref, _getDocument());
print('league save complete');
}
});
}
Я считаю, что иногда это может давать сбой, но я не уверен. Я получаю сообщение об ошибке.
Причина, по которой я подозреваю, что это иногда не удается, заключается в том, что мой слушатель (в другом месте приложения) не всегда увольняется при изменении документа.
Как мне зарегистрировать или зафиксировать ошибку в транзакции?





runTransaction - это обычная асинхронная операция, за которой вы можете следовать с помощью then и catchError:
Firestore.instance.runTransaction((Transaction tx) async {
// do whatever
}).then((val) {
// do something upon success
}).catchError((e) {
// do something upon error
});
и вы можете пропустить затем .then (), если хотите