CloudFirestoreにデータを保存するWebサイトがあります。さまざまなAPIにアクセスして新しいデータをデータベースに保存すると、データベースは毎分更新されます。
この更新されたデータを毎分ユーザーに提供する必要があります。現在、私は毎分、ユーザーのブラウザーが新しいCloud Function呼び出しを行い、それがCloud Firestoreに送信され、新しいデータを取得するようにしています。ただし、ユーザーがブラウザを1日中開いたままにしておくと、1,440件のリクエストが発生することを想像してみてください。
Cloud Functionsは、無料で2,000,000のリクエストしか提供しません。ユーザーが多い場合、それらのリクエストはすぐに使い果たされてしまいます。このデータを毎分ユーザーに提供し、Cloud Functionsのクォータを使い果たしないようにするためのより良い方法はありますか?おそらく、私は自分のソケットを作成して、ユーザーにそれに接続させることができますか?クォータにあまり追加せずに、そのソケットを毎分更新する方法を確認する必要がありますが。
Firebaseを使用すると、クライアントはCloud Firestoreに直接接続して、リアルタイムの更新をリッスンできます。これにより、そのデータをポーリングする必要がなくなり、クラウド機能が不要になります。
リアルタイムリスナーのアタッチは、(ドキュメントから)次のように簡単に行うことができます。
db.collection("cities").doc("SF") .onSnapshot(function(doc) { console.log("Current data: ", doc.data()); });
上記のonSnapshot
コールバック/cities/SF
は、ドキュメントが更新されるたびにトリガーされます。同様に、コレクション全体にリスナーをアタッチできます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加