脱机使用.颤振汉密尔顿应用程序架构.写入节点并期望云函数更新数据库,然后侦听器更新 UI



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

例如,当有人输入彩票时,应用程序首先写入 数据到实时数据库中的特定节点和数据库的 安全规则有助于确保数据有效。写 触发一个云函数,该函数运行业务逻辑并存储其 结果到实时数据库中的新节点。新写的 然后,结果数据会自动推送到应用。

我知道他们没有提出请求并期待请求,而是遵循以下模式:

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

当有人参加门票竞赛时,汉密尔顿应用程序遵循这种模式。我对模式的主要担忧是,如果连接处于脱机状态,我们将无法获得结果,同时也不会收到错误。更改将在本地更新,Firebase 将在下次有连接时更新,这将使事情变得混乱,因为用户期待结果。

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

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

我希望我不会感到困惑,因为我不太了解该模式。我对标题很挣扎,所以如果有人可以改进它,请成为我的客人。

即使构建一个支持离线的应用程序,如果操作链依赖于云函数,我也会让它无法在离线时执行,告诉用户在在线时重试。 但是,这也可能导致不良情况,因为每次用户尝试执行操作时都需要检查连接,这可能会很痛苦。

最新更新