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