Realtime vs Cloud Firestore:选择哪个 Firebase 数据库
已发表: 2018-10-12历史可以追溯到不远的 Firebase 数据库。 Firebase 最初是一个移动和 Web 开发平台,于 2011 年成立,然后在 2014 年被科技巨头 Google 收购,其命运发生了变化。
跳过 Firebase 的演变历史,在被谷歌收购后的一年内,它与 Divshot 合并,从那时起它已经扩展到成为移动开发者的统一平台。
Firebase 现在与各种其他 Google 服务集成,为开发人员提供更广泛的产品和规模。 事实上,它所提供的好处使Firebase 成为初创公司的一个趋势过程。
那么什么是 Firebase 数据库? Firebase 是一种 BaaS,即后端即服务。 使用 Firebase 提供的产品,不仅是移动开发人员可以构建高质量的应用程序。 谷歌还为 Firebase 网络用户推出了几项新功能。
Firebase 有两种产品可以构建我们刚才提到的所有应用程序。 实时和云 Firestore。
Realtime 是 Google 的 Firebase 数据库和 Cloud Firestore 的成熟产品,虽然承诺有更好的技术,但仍处于 beta 测试阶段。
根据谷歌:
实时数据库是 Firebase 的原始数据库。 对于需要跨客户端实时同步状态的移动应用程序来说,这是一种高效且低延迟的解决方案。
Cloud Firestore是 Firebase 用于移动应用开发的新旗舰数据库。 它通过一种新的、更直观的数据模型改进了实时数据库的成功。 Cloud Firestore 还具有比实时数据库更丰富、更快的查询和更好的扩展性。
在介绍实时数据库和 Cloud Firestore 的各个属性之前,让我们看一下在您的下一个项目中使用 Firebase 数据库的优点和缺点:
Firebase 数据库的优势:
如果我们看一下为什么要使用 firebase 数据库作为所有移动和Web 应用程序开发的一站式数据库的原因列表,我们就会明白为什么 Firebase db 在移动应用程序开发行业如此受欢迎。
- 轻松数据迁移——最近的发展为开发人员提供了轻松迁移数据的工具。
- 不需要额外的知识——在 Firebase db 中操作几乎需要关于 devOps 或 sysadmin 的零知识。
- 验证各种数据类型——尽管 Firebase 数据库结构是无模式的,但它仍然具有验证各种数据类型的基本能力。
- 一站式工具——它是一个包罗万象的工具,也是小型移动应用程序后端唯一需要的工具。
- 更易于使用——使用难度略高于平均水平,但在与分析和崩溃监控集成方面比大多数其他系统更容易
- 免费使用 –在初始阶段是免费的,所以第一次尝试它的开发人员不必担心进行大量的初始投资
- 丰富的代码库——所有跨编程语言的代码库都是相似的,并且对于新手来说也维护得很好。
- JSON 数据结构 –数据结构是与 UI JavaScript 完美映射的 JSON。
- 快速开发——从头开始制作应用程序非常快——身份验证、电子邮件、版本控制、托管、监控、DevOps、正常运行时间。
- 轻松流式传输——实时运行或流式更新非常容易。
现在让我们比较实时数据库和 Cloud Firestore,以便更清楚地了解何时使用哪个。 Cloud Firestore 仍处于 beta 测试阶段,它正在以比实时数据库更有前途的方式寻找和工作。 在此比较中,将了解这两个数据库有何不同,以及谁赢得了实时数据库与云 Firestore。
数据模型
- 实时数据库将数据存储为一棵大型 JSON 树,这使得存储简单数据非常容易,但复杂或分层数据更难大规模组织。
- 另一方面, Cloud Firestore以文档的形式存储数据,这些文档以集合的形式组织。 在这方面,简单数据的存储类似于 JSON,它存储在文档中。 然而,使用文档中的子集合来大规模组织复杂或分层数据并不容易。 总体而言,它需要较少的非规范化和数据扁平化。
实时和离线支持
- 实时数据库仅为 Android 和 iOS 移动客户端提供离线支持。
- 另一方面, Cloud Firestore也为 Android、iOS 和 Web 客户端提供离线支持。
查询
- 实时数据库提供具有有限排序和过滤功能的深度查询,开发人员可以在单个查询中对属性进行排序或过滤。 并且默认情况下所有查询都是深度的,即总是返回整个子树。
- Cloud Firestore使用复合排序和过滤索引查询,开发人员可以在单个查询中对属性进行链接过滤和组合过滤和排序。 也可以为子集合编写浅查询,也就是说,开发人员可以在文档内查询,而不是在整个集合或整个文档内进行查询。 不仅如此,查询也是默认索引的,这意味着查询性能与结果集的大小成正比,而不是与数据集的大小成正比。
交易
- 在实时数据库中,有基本的写入和事务操作。 写入数据作为单独的操作工作,事务需要在原生 SDK 中完成回调。
- Cloud Firestore允许原子写入和事务操作。 它对操作进行批处理并自动完成它们。 此外,交易会自动重复,直到完成。
性能和可靠性
- 实时数据库是一个成熟的产品。 它具有经过多次试验和测试的真品的稳定性。 它还具有非常低的延迟,因此它是频繁状态同步的好选择。 虽然,数据库仅限于单个区域中的区域可用性。
- Cloud Firestore的性能尚无法衡量,因为它仍处于测试阶段。 而且 beta 产品的稳定性与完全推出的产品的稳定性不同。 但在可靠性方面,Cloud Firestore 将您的所有数据存储在不同地区的多个数据中心,确保全球可扩展性和强大的可靠性。 理论上,每当 Cloud Firestore 出测试版时,它都会比实时数据库具有更强的可靠性。
可扩展性
- 在实时数据库中,扩展需要分片。 简而言之,在单个数据库中扩展到大约 100,000 个并发连接和 1000 次写入/秒,除此之外,它需要跨多个数据库分片您的数据。
- 当Cloud firestore发布测试版后,它的扩展将是自动的,开发人员不必将他们的数据分片到多个实例中。
安全
- 实时数据库具有需要单独验证的级联规则。 firebase 数据库规则是这里唯一的安全选项,开发人员需要使用“验证”规则单独验证数据。
- Cloud Firestore为使用身份和访问管理 (IAM) 的移动、网络和服务器 SDK 提供更简单、更强大的安全性。 数据验证也会自动发生。 此外,规则可以限制查询,也就是说,如果查询的结果可能包含开发人员无权访问的数据,则整个查询将失败。
价钱
- 实时数据库仅对带宽和存储收费,但价格较高。
- 另一方面, Cloud Firestore主要对在数据库中执行的操作(读取、写入、删除)收费,并以较低的速率、带宽和存储空间收费。 它还支持 Google App Engine 项目的每日支出限制。
您是否仍然想知道 Firebase 是如何工作的? 让我们回顾一下我们在上面的文章中所知道的内容。
何时使用实时数据库:
- 如果您的数据简单且不复杂或分层
- 如果您需要在单个数据库中扩展 100,000 个并发连接以下 1000 次写入/秒
- 当您需要一个为整体带宽和存储而不是执行的单个操作收费的数据库时。
何时使用 Cloud Firestore 数据库:
- 如果您的数据复杂或分层
- 如果您的数据扩展到超过 100,000 个并发连接
- 如果您需要更精确的消费限额和主要针对 1 收费的数据库是 PicCollage、Fabulous、Shazam 和 Skyscanner,我们都同意它们运行成功。
总之,Firebase 数据库模型对他们来说很顺利。 Realtime firebase 多年来一直成功运行,去年随着 Cloud Firestore 测试版的发布,移动应用程序开发人员和应用程序开发公司有了更好的东西。