gpt4 book ai didi

flutter - FieldValue.increment在离线状态下无法正常工作

转载 作者:行者123 更新时间:2023-12-03 04:38:13 26 4
gpt4 key购买 nike

我必须在firebase firestore中增加一个值,数据看起来像这样

{
"key":{
"name":"Apple",
"quantity":12
}
}
我需要将数量增加一。为此,我使用此功能。
FirebaseFirestore.instance.runTransaction((transaction) async {
transaction.set(
documentReference,
{
"key":{
"quantity" : FieldValue.increment(1)
}
},
SetOptions(merge: true));
return transaction;
});
当应用程序与网络连接时,这可以正常工作。但是,当应用程序离线时,再次连接该应用程序时,该值只会增加1。尽管离线时 quantity数次增加,但是当连接恢复时,它只是增加1。

最佳答案

问题是您为此使用事务,事务的工作方式是通过获取字段的当前值来确定新值,并且Firebase客户端不会在应用程序重新启动时持久化事务,因为事务的概念并不未连接用户时可以很好地工作。
因此,事务的工作方式使当前代码在脱机时不可能多次增加。因此,为了实现您想要的功能,最好将其从事务/增量方法中删除,并可能重新考虑应用程序的结构,以不同的方式适应该计数器,例如键列表和获取例如,当应用恢复在线并递增时的列表。

关于flutter - FieldValue.increment在离线状态下无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63735296/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com