本文概述
- 云消防站
- 实时数据库
云消防站 Firestore是用于移动应用程序开发的最新数据库。与实时数据库相比, Cloud Firestore具有更丰富的功能, 更快的查询并且可以进一步扩展。 Cloud Firestore是一个灵活且可扩展的NoSQL云数据库。它用于存储和同步数据以进行客户端和服务器端开发。它用于Google Cloud Platform和Firebase的移动, Web和服务器开发。
实时数据库 它是Firebase的原始数据库。它是一种低延迟解决方案, 对于需要跨客户端实时状态同步的移动应用程序非常有效。 Firebase实时数据库是一个云托管数据库, 其中数据以JSON形式存储。数据实时同步到每个连接的客户端。
文章图片
让我们了解Firestore和实时数据库之间的区别。
对于大多数开发人员来说, 建议使用Cloud Firestore数据库来启动新项目。 Cloud Firestore在旨在支持将来版本中更强大功能的基础架构上提供了附加功能, 性能和可伸缩性。期望在Cloud Firestore所使用的高级功能中看到更强大的安全规则, 新的查询类型以及性能改进。基于以下因素, 我们可以比较两种数据库解决方案:
文章图片
资料模型
Firestore和Firebase Realtime数据库是NoSQL数据库, 这意味着无需创建表和定义架构。
实时数据库 | 云消防站 |
---|---|
在实时数据库中, 数据存储为一棵大JSON树。 | 在Cloud Firestore中, 数据存储为文档的集合。 |
数据很简单, 因此很容易存储。 | 在文档中, 简单数据非常易于存储。文档与JSON非常相似。 |
复杂的分层数据很难大规模组织。 | 通过使用子集合, 可以轻松地大规模组织复杂的分层数据。它需要非常少的非规范化和数据展平。 |
实时数据库和Firestore支持将本地数据存储到可离线使用的应用程序, 并具有实时SDK。
实时数据库 | 云消防站 |
---|---|
离线支持Android和iOS客户端。 | 离线支持Android和iOS客户端。 |
联机状态对于了解客户端何时联机或脱机非常有用。每当客户端的连接状态更改时, Firebase Realtime Database都会通过记录客户端连接状态来提供更新。
实时数据库 | 云消防站 |
---|---|
实时数据库支持在线状态。 | Firestore本身不支持在线状态。通过使用云功能同步Cloud Firestore和Firebase Realtime数据库, 我们可以利用实时数据库的帮助。 |
【Firestore与实时数据库】通过查询从实时数据库或Cloud Firestore检索, 排序和过滤数据。
实时数据库 | 云消防站 |
---|---|
它使我们能够使用有限的排序和过滤功能执行深度查询。 | 它使我们能够使用复合排序和过滤来执行索引查询。 |
查询可以对属性进行排序或过滤, 但不能同时针对两者进行排序或过滤。 | 在Cloud Firestore中, 我们可以在单个查询中对属性进行链式过滤以及组合过滤和排序。 |
默认情况下, 它具有深度查询, 因此它总是返回整个子树。 | 它具有浅层查询, 因此这些查询返回特定集合或集合组中的文档。这些查询不返回子集合数据。 |
实时数据库查询可以随时访问数据, 甚至可以访问JSON树中的各个叶节点值。 | Cloud Firestore查询始终返回整个文档。 |
这些查询不需要索引。但是, 某些查询的性能会随着数据集的增长而降低。 | Cloud Firestore查询默认为索引。查询的性能与结果集的大小成正比, 而不是与数据集成正比。 |
实时数据库 | 云消防站 |
---|---|
只有基本的写和横切操作可以执行。 | 它允许执行高级写入和横切操作。 |
通过设置和更新操作实时写入数据。 | 在Cloud Firestore中, 通过设置和更新操作写入数据。借助数组和数字运算符之类的高级转换, 我们还可以写入数据。 |
在特定的数据子树上, 事务是原子的。 | 横断面可以从数据库的任何部分自动读取和写入数据。 |
实时数据库 | 云消防站 |
---|---|
这是一个单区域解决方案。 | 这是一个自动扩展的多区域解决方案。 |
对于单个区域中的区域可用性, 数据库是有限的。 | 在不同地区的多个数据中心中保护我们的数据, 确保全球可扩展性和强大的可靠性。 |
极低的延迟, 这是频繁进行状态同步的理想选择。 | 在全球范围内都可以使用区域或多区域配置。 |
实时数据库 | 云消防站 |
---|---|
需要分片以进行缩放。 | 在此, 缩放是自动的。 |
它可以扩展单个数据库中大约200000个并发连接和每秒1000次写入。除此之外, 还需要将数据分为多个数据库。 | 缩放是自动完成的。目前, 它最多可以扩展一百万个并发连接, 并且每秒可以写入10000次。将来可以增加限制。 |
对于单个数据, 写入速率没有本地限制。 | 它对单个文档或索引有限制。 |
实时数据库 | 云消防站 |
---|---|
它使用级联规则语言, 将授权和验证分开。 | 它使用将授权和验证结合在一起的无级联规则。 |
根据实时数据库规则, 从受保护的移动SDK进行读写。 | 借助Cloud Firestore安全规则, 可以保护服务器SDK的读取和写入。 |
读写规则是级联的。 | 除非使用通配符, 否则规则不会级联。 |
使用验证规则分别验证数据。 | 规则可以约束查询。如果查询结果可能包含数据, 则用户不必访问它, 则整个查询将失败。 |
实时数据库 | 云消防站 |
---|---|
仅对带宽和存储收费, 但收费较高。 | 主要是在我们的数据库中执行的操作, 并且收费低, 带宽和存储量低。 |
推荐阅读
- Cloud Firestore介绍和使用
- Firebase(实时数据库更新和删除)
- Firebase(实时数据库读写)
- Firebase实时数据库中的数据组织
- Firebase(实时数据库设置和配置)
- Firebase(实时数据库)
- Firebase SDK(使用电子邮件链接进行身份验证)
- Firebase UI(使用电子邮件链接进行身份验证)
- Firebase使用电话号码登录身份验证