分布式计数器

大规模记录事件计数器,以适应对 Cloud Firestore 执行的高速写入操作。

此扩展程序的运作方式

Use this extension to add a highly scalable counter service to your app. This is ideal for applications that count viral actions or any very high-velocity action such as views, likes, or shares.

Since Cloud Firestore has a limit of one sustained write per second, per document, this extension instead shards your writes across documents in a _counter_shards_ subcollection. Each client only increments their own unique shard while the background workers (provided by this extension) monitor and aggregate these shards into a main document.

Here are some features of this extension:

  • Scales from 0 updates per second to a maximum of 10,000 per second.
  • Supports an arbitrary number of counters in your app.
  • Works offline and provides latency compensation for the main counter.

Note that this extension requires client-side logic to work. We provide a TypeScript client sample implementation and its compiled minified JavaScript. You can use this extension on other platforms if you'd like to develop your own client code based on the provided client sample.

Additional setup

Before installing this extension, make sure that you've set up a Cloud Firestore database in your Firebase project.

After installing this extension, you'll need to:

  • Update your database security rules.
  • Set up a Cloud Scheduler job to regularly call the controllerCore function, which is created by this extension. It works by either aggregating shards itself or scheduling and monitoring workers to aggregate shards.
  • Use the provided client sample or your own client code to specify your document path and increment values.

Detailed information for these post-installation tasks are provided after you install this extension.

Billing

This extension uses other Firebase or Google Cloud Platform services which may have associated charges:

  • Cloud Firestore
  • Cloud Functions

When you use Firebase Extensions, you're only charged for the underlying resources that you use. A paid-tier billing plan is only required if the extension uses a service that requires a paid-tier plan, for example calling to a Google Cloud Platform API or making outbound network requests to non-Google services. All Firebase services offer a free tier of usage. Learn more about Firebase billing.

如何安装此扩展程序

使用 Firebase 控制台

要安装和管理扩展程序,您可以使用 Firebase 控制台。

使用控制台安装

使用 Firebase CLI

要安装和管理扩展程序,您还可以使用 Firebase CLI:

步骤 1:运行以下 npm 命令来安装 CLI 或将 CLI 更新到最新版本。

npm install -g firebase-tools
不能运行?请参阅 Firebase CLI 参考文档或者更改您的 npm 权限

步骤 2:运行以下命令来安装此扩展程序

firebase ext:install firestore-counter --project=projectId_or_alias
支持
Cloud Firestore
作者
许可
Apache-2.0
版本
0.1.3