Firebase Realtime Database
利用我们的 NoSQL 云端数据库存储和同步数据。数据会实时同步到所有客户端,而且即便您的应用处于离线状态,数据也仍然可供使用。
Realtime Database
Cloud Firestore
首选主要功能
实时 | Firebase Realtime Database 使用的不是常见的 HTTP 请求,而是数据同步机制。每当数据发生变化时,任何连接的设备都会以毫秒级的速度收到该更新。它可提供沉浸式的协作体验,无需考虑网络因素。 |
离线 | Firebase 应用即使在离线状态仍会保持响应,因为 Firebase Realtime Database SDK 会将您的数据始终保留在磁盘上。一旦重新建立连接,客户端设备会立即接收到之前错过的任何更改,以便与当前服务器状态保持同步。 |
可从客户端设备访问 | 移动设备或网络浏览器可以直接访问 Firebase Realtime Database,因此不需要应用服务器。安全和数据验证均通过 Firebase Realtime Database 安全规则提供,这些基于表达式的规则会在读取或写入数据时执行。 |
扩容到多个数据库 | 选择按照 Blaze 定价方案使用 Firebase Realtime Database 时,可以通过将数据拆分至同一 Firebase 项目中的多个数据库实例,来支持大规模的应用数据需求。在您的项目中使用 Firebase Authentication 可以简化身份验证,并可跨多个数据库实例验证用户。使用针对每个数据库实例的自定义 Firebase Realtime Database Security Rules 规则,您可以控制对各个数据库中的数据访问。 |
工作原理
Firebase Realtime Database 允许从客户端代码中直接安全地访问数据库,得益于此,您能够构建功能丰富的协作式应用。数据会永久性地保留在本地,即使处于离线状态,实时事件仍会继续触发,给最终用户提供良好的即时性体验。当设备重新连接到网络时,Realtime Database 会将本地数据变化与客户端离线期间发生的远程更新同步,自动合并任何不一致的数据。
Realtime Database 提供灵活的基于表达式的规则语言(称为 Firebase Realtime Database 安全规则),可以定义您的数据结构以及何时可以读取或写入数据。当与 Firebase Authentication 集成时,开发者可以定义什么人可以访问什么数据以及如何访问数据。
Realtime Database 是一种 NoSQL 数据库,因此具有不同于关系型数据库的优化方向和功能特点。Realtime Database API 的设计只支持可以快速执行的操作。这使您能够构建实时性更强的体验,即使服务数百万的用户,响应速度也丝毫不受影响。因此,请务必认真考虑用户需要如何访问您的数据,以便相应地设计数据结构。
实现流程
集成 Firebase Realtime Database SDK | 使用 Gradle、CocoaPods 或脚本添加方式快速添加客户端。 | |
创建 Realtime Database 引用 | 引用您的 JSON 数据(如“users/user:1234/phone_number”)来设置数据或订阅数据变化。 | |
设置数据并监听变化 | 使用这些引用写入数据或订阅变化。 | |
启用离线持久留存 | 允许将数据写入设备本地磁盘,以便供离线时使用。 | |
保护您的数据 | 使用 Firebase Realtime Database 安全规则来保护您的数据。 |
存储其他类型的数据
- Cloud Firestore 是一种灵活且可扩容的数据库,适用于在 Firebase 和 Google Cloud Platform 上进行移动、Web 和服务器开发。如需详细了解各数据库方案之间的差异,请参阅选择数据库:Cloud Firestore 或 Realtime Database。
- Firebase Remote Config 可存储开发者指定的键值对,来更改应用的行为和外观,而无需用户下载更新。
- Firebase Hosting 可托管您的网站的 HTML、CSS 和 JavaScript 资源以及由开发者提供的其他资源(如图形、字体和图标)。
- Cloud Storage 可存储图像、视频和音频等文件,以及其他用户生成的内容。