6

以下の引用は Google Developer Blog からの引用です。https://developers.googleblog.com/2017/08/hamilton-app-takes-stage.html

たとえば、誰かが宝くじに参加すると、アプリは最初に Realtime Database の特定のノードにデータを書き込み、データベースのセキュリティ ルールによってデータが有効であることを確認します。書き込みによって Cloud Function がトリガーされ、Cloud Function がビジネス ロジックを実行し、その結果を Realtime Database の新しいノードに保存します。新しく書き込まれた結果データは、アプリに自動的にプッシュされます。

リクエストを作成してリクエストを期待するのではなく、次のパターンに従っていることを理解しています。

  1. リアルタイム データベースへの書き込み
  2. 書き込みはアクションをトリガーします
  3. アクションは、いくつかのロジックと機能をトリガーします
  4. 関数はデータをデータベースに書き戻します
  5. アプリのリスナーは、4 に書き込まれたデータに関する通知を受け取ります。
  6. アプリは UI を更新するか、何らかのアクションを実行します。

ハミルトンのアプリは、誰かがチケットのコンテストに参加したときにこのパターンに従いました。パターンに関する私の主な懸念は、接続がオフラインの場合、結果が得られず、同時にエラーも発生しないことです。変更はローカルで更新され、firebase は次回の接続時に更新されます。これにより、ユーザーが結果を期待しているため、混乱が生じます。

何か簡単な方法やパターンがあればいいなと思っていたので、エラーになって表示してみます。

私の頭に浮かぶ最初の解決策は、何らかの方法で保存操作に時間を追加することです。x 秒以内にライブ データベースで保存が行われない場合は、エラーが表示されます。同時に、応答のタイムアウトも必要になります。したがって、x 秒以内に応答がない場合は、ユーザーに何かを表示します。

パターンをよく理解していなかったので、混乱しないことを願っています。タイトルに苦労したので、改善できる人がいたらゲストになってください。

4

1 に答える 1

0

オフライン対応のアプリを構築する場合でも、オペレーション チェーンが Cloud Function に依存している場合は、オフラインで実行できないようにして、ユーザーがオンラインのときに再試行するように指示します。ただし、ユーザーが ops を実行しようとするたびに接続を確認する必要があり、面倒な場合があるため、これは悪い状況にもつながる可能性があります。

于 2018-11-24T19:42:46.780 に答える