
Distributed Counter

Made by Firebase
Cloud Firestore への高速書き込みに対応するため、イベント カウンタを大規模に記録します。
この拡張機能の動作
この拡張機能を利用すると、スケーラビリティの高いカウンタ サービスをアプリに追加できます。バイラル アクションや、視聴回数、高評価、共有といったきわめて高頻度なアクションをカウントするアプリケーションに最適です。
Cloud Firestore には 1 つのドキュメントで 1 秒あたり 1 回の持続書き込みという制限があるため、複数の書き込みがある場合はこの拡張機能が _counter_shards_
サブコレクション内の複数のドキュメントに分割します。各クライアントはそれぞれ独自のシャードのみをインクリメントしますが、バックグラウンド ワーカー(この拡張機能で提供)は、それらのシャードをモニタリングして 1 つの主要ドキュメントに集約します。
この拡張機能には次のような機能があります。
- 1 秒あたり 0 回の更新を、1 秒あたり最大 10,000 回にまでスケーリングします。
- アプリでの任意の数のカウンタをサポートします。
- オフラインで機能し、メインカウンタのレイテンシ補正を行います。
この拡張機能にはクライアント側の有効なロジックが必要です。Google は TypeScript クライアントのサンプル実装とそのコンパイル済みの圧縮 JavaScript を提供しています。必要に応じて、この拡張機能を他のプラットフォームで利用して、提供されたクライアント サンプルに基づき独自のクライアント コードを作成できます。
また、Node.js admin のサンプル実装も提供しています。
追加の設定
インストール前に、必ず Firebase プロジェクトで Cloud Firestore データベースを設定してください。
インストール後は、次の作業が必要になります。
- データベースのセキュリティ ルールを更新する。
- 指定されたクライアント サンプル、提供された Node.js admin サンプルまたは独自のクライアント コードを使用して、ドキュメント パスと増分値を指定する。
これらのインストール後の作業に関する詳細は、拡張機能のインストール後に提供されます。
料金
拡張機能をインストールするには、プロジェクトを Blaze(従量課金制)プランに含める必要があります。
- この拡張機能に必要な Firebase リソースに対しては、使用しない場合でも、小額(通常は約 $0.01/月)が請求されます。
- この拡張機能は、次のような他の Firebase サービスや Google Cloud Platform サービスを使用するため、こうしたサービスの無料枠を超えた場合には関連する料金が発生します。
- Cloud Firestore
- Cloud Functions(Node.js 10 を超えるランタイム。FAQ を参照)
この拡張機能をインストールする方法
Firebase CLI の使用
拡張機能のインストールと管理は、Firebase CLI でも行えます。
ステップ 1: 以下の npm コマンドを実行して、CLI をインストールするか、最新バージョンの CLI に更新します。
npm install -g firebase-tools正常に機能しない場合は、Firebase CLI リファレンスを確認するか、npm のアクセス権を変更してください。
ステップ 2: 新しい Firebase プロジェクトのディレクトリを設定するか、既存のプロジェクト ディレクトリに移動します
ステップ 3: 次を実行して、この拡張機能を拡張機能のマニフェストに追加します
firebase ext:install firebase/firestore-counter --local --project=projectId_or_alias
ステップ 4(任意): Firebase Emulator Suite を使用して、この拡張機能をローカルでテストします
firebase emulators:start
ステップ 5: マニフェストにある拡張機能をプロジェクトにデプロイします
firebase deploy --only extensions --project=projectId_or_alias