以下の引用は Google Developer Blog からの引用です。https://developers.googleblog.com/2017/08/hamilton-app-takes-stage.html
たとえば、誰かが宝くじに参加すると、アプリは最初に Realtime Database の特定のノードにデータを書き込み、データベースのセキュリティ ルールによってデータが有効であることを確認します。書き込みによって Cloud Function がトリガーされ、Cloud Function がビジネス ロジックを実行し、その結果を Realtime Database の新しいノードに保存します。新しく書き込まれた結果データは、アプリに自動的にプッシュされます。
リクエストを作成してリクエストを期待するのではなく、次のパターンに従っていることを理解しています。
- リアルタイム データベースへの書き込み
- 書き込みはアクションをトリガーします
- アクションは、いくつかのロジックと機能をトリガーします
- 関数はデータをデータベースに書き戻します
- アプリのリスナーは、4 に書き込まれたデータに関する通知を受け取ります。
- アプリは UI を更新するか、何らかのアクションを実行します。
ハミルトンのアプリは、誰かがチケットのコンテストに参加したときにこのパターンに従いました。パターンに関する私の主な懸念は、接続がオフラインの場合、結果が得られず、同時にエラーも発生しないことです。変更はローカルで更新され、firebase は次回の接続時に更新されます。これにより、ユーザーが結果を期待しているため、混乱が生じます。
何か簡単な方法やパターンがあればいいなと思っていたので、エラーになって表示してみます。
私の頭に浮かぶ最初の解決策は、何らかの方法で保存操作に時間を追加することです。x 秒以内にライブ データベースで保存が行われない場合は、エラーが表示されます。同時に、応答のタイムアウトも必要になります。したがって、x 秒以内に応答がない場合は、ユーザーに何かを表示します。
パターンをよく理解していなかったので、混乱しないことを願っています。タイトルに苦労したので、改善できる人がいたらゲストになってください。