离线使用.Flutter Hamilton应用程序架构.写入节点并期望云功能更新数据库,然后监听更新UI

zir*_*isp 6 dart firebase flutter google-developer-tools

以下引用来自Google Developer Blog.https://developers.googleblog.com/2017/08/hamilton-app-takes-stage.html

例如,当有人进入抽奖时,应用程序首先将数据写入实时数据库中的特定节点,数据库的安全规则有助于确保数据有效.write触发Cloud Function,它运行业务逻辑并将其结果存储到Realtime Database中的新节点.然后,新写入的结果数据将自动推送到应用程序.

我理解,他们不是发出请求而是期待请求,而是遵循以下模式:

  1. 写入实时数据库
  2. 写入触发动作
  3. 该动作触发了一些逻辑和功能
  4. 该函数将数据写回数据库
  5. 应用程序上的监听器会收到有关写入4的数据的通知.
  6. 应用程序更新UI或采取任何操作.

汉密尔顿应用程序遵循这种模式,当有人进入竞争对手的票.我对该模式的主要关注是,如果连接处于脱机状态,我们将无法获得结果,同时我们也不会收到错误.更改将在本地更新,firebase将在下次连接时更新,这将使事情变得混乱,因为用户期望得到结果.

我想知道是否有一个简单的方法或模式可以遵循,所以我们将得到一个错误并显示它.

我想到的第一个解决方案是以某种方式在保存操作上添加时间.如果在x秒内未在实时数据库上进行保存,则会显示错误.与此同时,我们还需要在回复时超时.因此,如果我们在x秒内没有收到回复,我们会向用户显示一些内容.

我希望我不会感到困惑,因为我不太了解这种模式.我努力争取冠军头衔,所以如果有人能改进,请成为我的客人.

Dar*_*rdi 0

即使构建一个具有离线功能的应用程序,如果操作链依赖于云功能,我也会使其无法在离线时执行,并告诉用户在线时重试。然而,这也可能会导致糟糕的情况,因为每次用户尝试执行操作时都需要检查连接,这可能会很痛苦。