Firebase 提供了两种支持实时数据同步且可通过客户端访问的云数据库解决方案:
Cloud Firestore 是 Firebase 用于移动应用开发的最新数据库。它具备更直观的新数据模型,在实时数据库的成功基础上更上一层楼。与实时数据库相比,Cloud Firestore 还提供了更丰富、更快速的查询以及更好的扩缩功能。
实时数据库是 Firebase 的原有数据库。对于需要在客户端之间实时同步状态的移动应用,它是一种高效、低延迟的解决方案。
哪个数据库适合您的项目?
我们建议大多数开发新项目的开发者使用 Cloud Firestore。Cloud Firestore 所采用的基础架构旨在在未来支持更强大的功能,可提供更多的功能、更高的性能以及可扩展性。今后,我们将为 Cloud Firestore 推出新的查询类型、更可靠的安全规则以及其他高级功能,并改进其性能。
选择数据库解决方案时,请考虑 Cloud Firestore 和实时数据库之间的以下不同点。
数据模型
实时数据库和 Cloud Firestore 都是 NoSQL 数据库。
实时数据库 | Cloud Firestore |
---|---|
将数据存储为一个大型 JSON 树。
详细了解实时数据库数据模型。 |
将数据存储为文档集合。
了解有关 Cloud Firestore 数据模型的更多信息。 |
实时和离线支持
两者都具有移动优先的实时 SDK,并且都支持离线就绪应用的本地数据存储。
实时数据库 | Cloud Firestore |
---|---|
为 iOS 和 Android 客户端提供离线支持。 | 为 iOS、Android 和网页客户端提供离线支持。 |
查询
通过查询从数据库检索、排序和过滤数据。
实时数据库 | Cloud Firestore |
---|---|
借助受限的排序和过滤功能进行深入查询。
|
同时借助排序和过滤功能进行索引查询。
|
写入和事务
实时数据库 | Cloud Firestore |
---|---|
基本写入和事务操作。 | 高级写入和事务操作。 |
可靠性和性能
实时数据库 | Cloud Firestore |
---|---|
实时数据库是一种单区域解决方案。
|
Cloud Firestore 是一种可自动扩缩的多区域解决方案。
|
可扩缩性
实时数据库 | Cloud Firestore |
---|---|
扩缩功能需要分片。
|
自动扩容。
|
安全
实时数据库 | Cloud Firestore |
---|---|
采用将授权与验证分开的级联规则语言。 | 采用将授权与验证合并的非级联规则。
|
价格
这两种解决方案都可在 Spark、Flame 和 Blaze 定价方案中获得。
实时数据库 | Cloud Firestore |
---|---|
仅对带宽和存储收费,但费率较高。
请阅读有关实时数据库定价方案的更多信息。 |
主要针对在数据库中执行的操作(读取、写入、删除)收费,并以较低的费率对带宽和存储收费。
Cloud Firestore 支持对 Google App Engine 项目设置每日支出限额,确保不会超出您能接受的费用水平。 请阅读有关 Cloud Firestore 定价方案的更多信息。 |
使用 Cloud Firestore 和实时数据库
您可以在同一个 Firebase 应用或项目中同时使用这两种数据库。这两种 NoSQL 数据库可以存储相同类型的数据,客户端库的工作方式也相似。如果您决定在应用中同时使用这两种数据库,请注意数据库之间的上述差异。
详细了解实时数据库和 Cloud Firestore 提供的功能。