Firestore与实时数据库

本文概述

  • 云消防站
  • 实时数据库
对于开发任何应用程序(例如桌面, 移动和Web), 数据库是我们存储数据的先决条件。在我们可以以每个应用程序可以访问相同数据的方式存储和操作数据的地方, 需要存储。 Firebase提供Firestore和Firebase实时数据库。这些数据库是基于云的, 客户端可访问的数据库解决方案, 支持实时数据同步。
云消防站 Firestore是用于移动应用程序开发的最新数据库。与实时数据库相比, Cloud Firestore具有更丰富的功能, 更快的查询并且可以进一步扩展。 Cloud Firestore是一个灵活且可扩展的NoSQL云数据库。它用于存储和同步数据以进行客户端和服务器端开发。它用于Google Cloud Platform和Firebase的移动, Web和服务器开发。
实时数据库 它是Firebase的原始数据库。它是一种低延迟解决方案, 对于需要跨客户端实时状态同步的移动应用程序非常有效。 Firebase实时数据库是一个云托管数据库, 其中数据以JSON形式存储。数据实时同步到每个连接的客户端。
Firestore与实时数据库

文章图片
让我们了解Firestore和实时数据库之间的区别。
对于大多数开发人员来说, 建议使用Cloud Firestore数据库来启动新项目。 Cloud Firestore在旨在支持将来版本中更强大功能的基础架构上提供了附加功能, 性能和可伸缩性。期望在Cloud Firestore所使用的高级功能中看到更强大的安全规则, 新的查询类型以及性能改进。基于以下因素, 我们可以比较两种数据库解决方案:
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的读取和写入。
读写规则是级联的。 除非使用通配符, 否则规则不会级联。
使用验证规则分别验证数据。 规则可以约束查询。如果查询结果可能包含数据, 则用户不必访问它, 则整个查询将失败。
价钱
实时数据库 云消防站
仅对带宽和存储收费, 但收费较高。 主要是在我们的数据库中执行的操作, 并且收费低, 带宽和存储量低。

    推荐阅读