Я пытаюсь обновить значение с помощью Transaction
, во-первых, я пытался вот так, но приложение зависало при tx.get
.
Я думаю, это проблема с плагинами. Я видел пару проблем в git.
await Firestore.instance.runTransaction((tx) async {
DocumentReference ref = Firestore.instance.collection('votes').document('6z2C2cSwnHNXaRNmzs4P');
DocumentSnapshot snap = await tx.get(ref); // crash here
if (snap.exists) {
await tx.update(snap.reference, {'vote': snap.data['vote'] + 1});
}
});
Я только что изменил tx.get
на ref.get
, и это работает с точки зрения значения обновления.
Тогда я хотел бы спросить: если бы я изменился таким образом, это все еще работало бы атомарно?
await Firestore.instance.runTransaction((tx) async {
DocumentReference ref = Firestore.instance.collection('votes').document('6z2C2cSwnHNXaRNmzs4P');
DocumentSnapshot snap = await ref.get(); // changed here
if (snap.exists) {
await tx.update(snap.reference, {'vote': snap.data['vote'] + 1});
}
});