扑扑的Firestore交易行得通吗?

时间:2018-11-06 19:03:59

标签: flutter google-cloud-firestore

我首先尝试使用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});
    }
  });

0 个答案:

没有答案