В документации Firestore сказано:
"В случае одновременного редактирования Cloud Firestore снова запускает всю транзакцию. Например, если транзакция читает документы, а другой клиент изменяет какой-либо из этих документов, Cloud Firestore повторяет транзакцию. Эта функция обеспечивает выполнение транзакции. на современных и непротиворечивых данных. "
Я использую пакет cloud_firestore и заметил, что делаю
final TransactionHandler transaction = (Transaction tx) async {
DocumentSnapshot ds = await tx.get(userAccountsCollection.document(id));
return ds.data;
};
return await runTransaction(transaction).then((data){
return data;
});
транзакция может выполняться несколько раз, но всегда возвращаться после первой транзакции. Теперь в случае одновременного редактирования данные первой транзакции могут быть неверными, поэтому для меня это проблема.
Как я могу ждать завершения транзакции, даже если она будет выполняться несколько раз и не вернется после завершения первой?