6

以下引用摘自谷歌开发者博客。https://developers.googleblog.com/2017/08/hamilton-app-takes-stage.html

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

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

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

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

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

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

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

4

1 回答 1

0

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

于 2018-11-24T19:42:46.780 回答