【发布时间】:2018-11-15 08:42:42
【问题描述】:
自从开始使用DatabaseReference.runTransaction函数后,就遇到了问题。
看了最新的Google Developers Flutter promotion video,我现在有信心准确的呈现这个问题了!
使用 DatabaseReference.updateData 会立即将信息传递给Stream<QuerySnapshot>。这个可以be seen here。在他点击项目的那一刻,即updateData 更新,计数器也立即更新,这是非常好的预期行为。 这意味着您执行更新的设备会立即更新,但另一台设备从服务器获取延迟。
当您转换到 runTransaction 时,此功能完全丢失,您将不得不等待设备上未处理但从 Firestore 发送的定期更新。 Looking at the new implementation,您可以清楚地看到两个设备同时同时更新存在延迟,并且比这更糟糕。由此可以清楚地得出,没有on device数据更新,这对于UI来说是非常烦人的。
我不搜索解决方法,因为我显然已经实现了自己,这意味着我自己管理我的更新,在这种情况下,我会在我点击的那一刻在内部更新计数器在更新程序上。
我想知道的是是否有办法启用 即时 行为 runTransaction 。
【问题讨论】:
标签: dart google-cloud-firestore flutter