
分布式计数器

Made by Firebase
大规模记录事件计数器,以适应对 Cloud Firestore 执行的高速写入操作。
此扩展程序的运作方式
使用此扩展程序可在您的应用中添加一项具备极强扩缩能力的计数器服务。这非常适合那些需要统计热门操作或频率极高的操作(如浏览、顶或分享等)次数的应用。
由于 Cloud Firestore 每个文档每秒只能进行一次持续写入,此扩展程序会将您的写入操作分片到一个“counter_shards”子集合内的多个文档中。每个客户端仅在自己专属的分片中递增数值,而后台工作器(由此扩展程序提供)会监控这些分片,并将其聚合到一份主文档中。
此扩展程序的部分功能包括:
- 从每秒 0 次更新扩容到每秒最多 1 万次更新。
- 在您的应用中支持任意数量的计数器。
- 可离线工作,并为主计数器提供延迟补偿。
请注意,此扩展程序需要客户端逻辑才能工作。我们提供一个 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+ 运行时。查看常见问题解答)
如何安装此扩展程序
使用 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