Firebase 实时数据库在数据存储和操作方面的限制如下。如需超出其中任何限额,请使用多个数据库。
全局
操作 | 限制 | 说明 |
---|---|---|
并发连接数 | 200,000* | 一个并发连接相当于连接到数据库的一台移动设备、一个浏览器标签页或一项服务器应用。 它并不等于应用的用户总数,因为用户不会同时全部连接。例如,每月有 1000 万活跃用户的应用通常只有不到 20 万个并发连接。最大并发连接数取决于总用户数以及用户在应用中花费的平均时间。 如果您需要超出此限额,请尝试使用多个数据库。 *同时连接的 Spark 方案上限为 100。 |
从单个数据库发送的并发响应数 | ~100,000/秒 | 响应数包括服务器在给定时间从单个数据库发送的并发广播和读取操作数。该限额是指从数据库发送的代表每个单独的读取或广播操作的数据包,包括推送通知。本指南适用于持续性负载,但数据库有能力应对负载偶尔突增的情况。 |
单个写入操作触发的 Cloud Functions 函数数量 | 1000 个;对于 Cloud Functions v2,每个区域 500 个 | 尽管单个函数可以触发多少个读取或写入操作并无限制,但单个数据库写入操作只能触发 1000 个函数;对于 Cloud Functions v2,该限制则为每个区域只能触发 500 个函数。 Cloud Functions 函数只能通过写入操作触发,并且每个函数还可以触发更多写入操作,而这些写入操作会触发更多函数(每个写入操作均最多触发 1000 个函数,或者每个区域最多触发 500 个函数)。 |
写入操作触发的单个事件的大小 | 1 MB | 事件的大小由以下值组成:
|
向 Cloud Functions 传输数据 | 持续可达 10 MB/秒 | 可转发到 Cloud Functions 的事件数据的转发速度。 |
数据树
属性 | 限制 | 说明 |
---|---|---|
子节点的最大深度 | 32 | 数据树中每条路径的深度必须小于 32 层。 |
键的长度 | 768 字节 | 键采用 UTF-8 编码,且不得包含新行或以下任何字符: . $ # [ ] / 或任何 ASCII 控制字符(0x00 - 0x1F 以及 0x7F) |
字符串的大小上限 | 10 MB | 数据采用 UTF-8 编码。 |
读取
说明 | 限制 | 备注 |
---|---|---|
数据库发出的单个响应的大小 | 256 MB | 每个读取操作在单个位置从数据库下载的数据应小于 256 MB。
如需执行更大规模的读取操作,请尝试以下方法:
|
一条路径中可包含监听器或查询的节点的总数 | 7500 万* | 您无法监听或查询累计包含超过 7500 万个节点的路径。但是,您仍然可以监听或查询子节点。请尝试监听或查询更深层的路径,或者为路径的更具体部分创建单独的监听器或查询。
*您无法在 Firebase 控制台的数据查看器中查看包含总计超过 3 万个节点的路径。 |
单个查询可以运行的时长 | 15 分钟* | 单个查询最多可运行 15 分钟,超过此时间后会失败。
*在 Firebase 控制台中执行的单个查询最多仅可运行 5 秒钟,超过此时间后会失败。 |
写入
说明 | 限制 | 备注 |
---|---|---|
写入速率 | 每秒 1000 次写入 | 每秒对单个数据库执行的写入操作次数限制。虽然没有硬性限制,但如果您每秒的写入次数超过 1000 次,您的写入活动可能会受到速率限制。 |
对数据库发出的单个写入请求的大小 | 256 MB(对于从 REST API 发出的请求)/16 MB(对于从 SDK 发出的请求)。 | 每个写入操作中的总数据应小于 256 MB。这一大小限制也适用于多路径更新。 |
写入的字节数 | 64 MB/分钟 | 在任何给定时间通过并发写入操作向数据库写入的总字节数。 |