Firebase 提供了两种可通过客户端访问的云端文档数据库。我们建议新客户先从 Cloud Firestore 开始:
Cloud Firestore 是与 JSON 兼容的企业级文档数据库(推荐),深受 25 万多名开发者的信赖。它适用于具有丰富数据模型且需要可查询性、可伸缩性和高可用性的应用。它还提供低延迟客户端同步和离线数据访问功能。
Realtime Database 是经典的 Firebase JSON 数据库。它适用于具有简单数据模型的应用,这些模型需要简单的查询和低延迟同步,而可伸缩性有限。
还有哪些其他需要注意的重要事项?
在考虑了上述重要因素后,您可能已准备好选择数据库。如果您仍在权衡优缺点,请参阅本部分,其中介绍了 Cloud Firestore 与 Realtime Database 之间的其他区别。
数据模型
Realtime Database 和 Cloud Firestore 都是 NoSQL 数据库。
Cloud Firestore | [首选] | Realtime Database |
---|---|---|
将数据存储为文档集合。
详细了解 Cloud Firestore 数据模型。 |
将数据存储为一个大型 JSON 树。
详细了解 Realtime Database 数据模型。 |
实时和离线支持
两者都具有移动优先的实时 SDK,并且都支持离线就绪应用的本地数据存储。
Cloud Firestore | [首选] | Realtime Database |
---|---|---|
为 Apple、Android 和 Web 客户端提供离线支持。 | 为 Apple 和 Android 客户端提供离线支持。 |
Presence
了解客户端处于在线还是离线状态非常有用。Firebase Realtime Database 可以记录客户端连接状态,并在客户端连接状态发生变化时提供更新。
Cloud Firestore | [首选] | Realtime Database |
---|---|---|
不提供原生支持。您可以使用 Cloud Functions 同步 Cloud Firestore 和 Realtime Database,从而在 Realtime Database 对在线状态系统的支持的基础上进一步构建。请参阅在 Cloud Firestore 中构建在线状态系统。 | 支持在线状态检测。 |
查询
通过查询从数据库检索、排序和过滤数据。
Cloud Firestore | [首选] | Realtime Database |
---|---|---|
索引式查询,提供复合排序和过滤功能。
|
深度查询,提供有限的排序和过滤功能。
|
写入和事务
Cloud Firestore | [首选] | Realtime Database |
---|---|---|
高级写入和事务操作。 | 基本写入和事务操作。 |
可靠性和性能
Cloud Firestore | [首选] | Realtime Database |
---|---|---|
Cloud Firestore 是一种可自动扩容的单区域和多区域解决方案。
|
Realtime Database 是一种单区域级解决方案。
|
Uptime
Cloud Firestore | [首选] | Realtime Database |
---|---|---|
极高的正常运行时间性能。
|
较高的正常运行时间性能。
|
可伸缩性
Cloud Firestore | [首选] | Realtime Database |
---|---|---|
自动扩容。
|
扩容需要进行分片。
|
安全
Cloud Firestore | [首选] | Realtime Database |
---|---|---|
采用将授权与验证合并的非级联规则。
|
采用将授权与验证分开的级联规则语言。
|
价格
这两种解决方案都可在 Spark 和 Blaze 定价方案中获得。
Cloud Firestore | [首选] | Realtime Database |
---|---|---|
主要针对在数据库中执行的操作(读取、写入、删除)收费,并以较低的费率对带宽和存储收费。
Cloud Firestore 支持对 App Engine 项目设置每日支出限额,确保不会超出您能接受的费用水平。 详细了解 Cloud Firestore 定价方案。 |
仅对带宽和存储收费,但费率较高。 详细了解 Realtime Database 定价方案。 |
使用 Cloud Firestore 和 Realtime Database
您可以在同一个 Firebase 应用或项目中同时使用这两种数据库。这两种 NoSQL 数据库可以存储相同类型的数据,客户端库的工作方式也相似。如果您决定在应用中同时使用这两种数据库,请注意数据库之间的上述差异。
详细了解 Realtime Database 和 Cloud Firestore 中提供的功能。
准备好选择数据库了吗?
希望此比较能够帮助您决定采用哪个 Firebase 数据库解决方案。现在,您可以了解如何将数据库添加到 Firebase 项目中。
- 如需了解 Cloud Firestore,请参阅 Cloud Firestore 使用入门。
- 如需了解 Realtime Database,请参阅适用于您的平台的使用入门主题:Apple、Android、C++、Unity、Web 或 REST。