dart - Flutter Firestore 使设备上的 runTransaction 瞬间完成

标签 dart google-cloud-firestore flutter

自从开始使用 DatabaseReference.runTransaction 功能,我有一个问题。

已观看最新Google Developers Flutter promotion video ,我现在有信心把这个问题准确的呈现出来!

使用 DatabaseReference.updateData 将信息立即传递给Stream<QuerySnapshot> .这可以be seen here .他点击该项目的那一刻,即 updateData更新后,计数器也会立即更新,这是非常好的预期行为这意味着您执行更新的设备立即更新,但其他设备从服务器获取延迟。

您转换到 runTransaction 的那一刻,此功能完全丢失,您将不得不等待不在设备上处理但从 Firestore 发送的定期更新。 Looking at the new implementation ,您可以清楚地看到存在延迟,比这更糟糕的是两个设备 同时更新。从这一点可以清楚地得出没有设备上数据更新,这对 UI 来说非常烦人。

没有搜索解决方法,因为我显然已经自己实现了,这意味着我正在自己管理更新,在这种情况下,我会在点击时在内部更新计数器在更新程序上。

我想知道是否有办法启用 瞬时 行为 runTransaction .

最佳答案

我怀疑这是可能的,否则它就不是交易。 交易必须是 ACID因此需要在一个中心点——服务器进行协调。

这就是为什么对于事务没有本地更新然后同步到服务器的原因。

关于dart - Flutter Firestore 使设备上的 runTransaction 瞬间完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50707246/

相关文章:

javascript - Firestore "set"和文档的最大写入速率

layout - Flutter应用程序屏幕底部的背景图片

dart - itemcount 中的 snapshot.data.length 不起作用 : "The getter ' length' was called on null"

dart - webview_flutter 和 flutter_webview_plugin 哪个更好

dart - 为什么 Angular 不需要组件名称中的破折号

swift - 从 Firestore 中获取用户配置文件的数据(swift、iOS、Xcode、firebase/firestore)

javascript - Firestore set() 中的合并选项在 Node JS 中不起作用

flutter snackbar 动画和滑动

flutter - 如何在已经获得的 future 中实现FutureBuilder

listview - 动态添加 List<Widget> 到 ListView.children