трепетание Firestore транзакция это работает? - PullRequest
0 голосов
/ 06 ноября 2018

Я пытаюсь обновить значение с помощью 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});
    }
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...