Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dart Flatter Firestore使设备上的runTransaction瞬间生效_Dart_Google Cloud Firestore_Flutter - Fatal编程技术网

Dart Flatter Firestore使设备上的runTransaction瞬间生效

Dart Flatter Firestore使设备上的runTransaction瞬间生效,dart,google-cloud-firestore,flutter,Dart,Google Cloud Firestore,Flutter,自从开始使用这个函数以来,我就遇到了一个问题 看了最新的,我现在有信心准确地提出这个问题 使用将立即将信息传递到流。这个可以。当他点击该项时,即updateData被更新,计数器也会立即更新,这是非常好的预期行为。这意味着您执行更新的设备会立即更新,但另一个设备从服务器获取数据时会有延迟 当您转换到runTransaction时,此功能将完全丢失,您将不得不等待常规更新,该更新不是在设备上处理的,而是从Firestore发送的,您可以清楚地看到,两个设备同时更新时会出现延迟和更糟糕的情况。从这一

自从开始使用这个函数以来,我就遇到了一个问题

看了最新的,我现在有信心准确地提出这个问题

使用将立即将信息传递到流。这个可以。当他点击该项时,即updateData被更新,计数器也会立即更新,这是非常好的预期行为。这意味着您执行更新的设备会立即更新,但另一个设备从服务器获取数据时会有延迟

当您转换到runTransaction时,此功能将完全丢失,您将不得不等待常规更新,该更新不是在设备上处理的,而是从Firestore发送的,您可以清楚地看到,两个设备同时更新时会出现延迟和更糟糕的情况。从这一点可以清楚地得出,没有设备上的数据更新,这对UI来说是非常烦人的

我不是在寻找解决方法,因为我自己显然已经实现了这一点,这意味着我自己管理我的更新,在这种情况下,我会在点击更新程序时在内部更新计数器


我想知道的是,是否有一种方法可以启用runTransaction的即时行为。

我怀疑这是可能的,否则它就不是事务了。 事务必须在一个中心点(服务器)进行协调


这就是为什么在事务中没有同步到服务器的本地更新。

我怀疑这是可能的,否则它就不是事务。 事务必须在一个中心点(服务器)进行协调


这就是为什么在事务中没有同步到服务器的本地更新。

事务不能是即时的。他们总是需要与服务器进行往返,以确保真正正确的原子更新。

事务不能是即时的。他们总是需要与服务器进行一次往返,以确保真正正确的原子更新。

在我的记忆中,我可以清楚地看到我在Android上有这种行为,但我可能错了。即使不是这样,我也不能完全理解有响应UI的反对意见,即使它只是像在数据库的脱机副本上执行一样处理事务。你认为在这种情况下提出一个问题会导致什么吗?如果你能在原生Android中复制,那么绝对值得一试。有一个响应用户界面的反对意见这不是不想要这个,而是这在技术上是否是可以解决的,而不会让服务器陷入数以百万计的未完成事务。我试图把它作为一个折衷方案来展示,也就是说,本质上是根据立即发送到流的本地数据以及稍后从服务器传入的实际更新来预测将发生什么。这意味着GitHub上的问题将一文不值,因为我显然没有抓住要点,应该自己处理?交易涉及硬担保,没有多少权衡的余地。它们对于服务器来说也是非常昂贵的,Firebase完全是关于可伸缩性的,而事务已经是一种折衷了。我在研究Android部分后发现,我错了。我从不怀疑任何一个在这个项目上工作的人的能力。我只是想知道,因为这个项目相对较新。我理解ACID部分,因为我觉得不值得为在每个场景中都能工作的东西而打扰其他人,所以我将继续自己实现它。我只是在考虑一个可选的参数。在我的记忆中,我可以清楚地看到我在Android上有这种行为,但我可能是错的。即使不是这样,我也不能完全理解有响应UI的反对意见,即使它只是像在数据库的脱机副本上执行一样处理事务。你认为在这种情况下提出一个问题会导致什么吗?如果你能在原生Android中复制,那么绝对值得一试。有一个响应用户界面的反对意见这不是不想要这个,而是这在技术上是否是可以解决的,而不会让服务器陷入数以百万计的未完成事务。我试图把它作为一个折衷方案来展示,也就是说,本质上是根据立即发送到流的本地数据以及稍后从服务器传入的实际更新来预测将发生什么。这意味着GitHub上的问题将一文不值,因为我显然没有抓住要点,应该自己处理?交易涉及硬担保,没有多少权衡的余地。它们对于服务器来说也是非常昂贵的,Firebase完全是关于可伸缩性的,事务已经是一种折衷了
T我从不怀疑任何一个在这个项目上工作的人的能力。我只是想知道,因为这个项目相对较新。我理解ACID部分,因为我觉得不值得为在每个场景中都能工作的东西而打扰其他人,所以我将继续自己实现它。我正在考虑一个可选的参数。谢谢你的回答,显然他们不能。我甚至没想到会这样。我想知道是否有一种方法可以将更新推送到本地处理的流,就像视频中演示的updateData一样。我知道这个更新可能有问题,这也是我自己正在做的,直到服务器推送新的值。谢谢你的回答,显然他们不能。我甚至没想到会这样。我想知道是否有一种方法可以将更新推送到本地处理的流,就像视频中演示的updateData一样。我知道这个更新可能有问题,这也是我自己正在做的,直到服务器推送新值。