📅  最后修改于: 2021-01-02 03:39:04             🧑  作者: Mango
我们在Firebase中有两个选项,即我们在上一节中了解的Firebase Real-time Database和Cloud Firestore。 Cloud Firestore较新,但并未取代Firebase实时数据库。 Cloud Firestore是一个灵活且可扩展的NoSQL云数据库。它用于存储和同步数据以进行客户端和服务器端开发。它用于Google Cloud Platform和Firebase的移动,Web和服务器开发。像Firebase实时数据库一样,它通过实时侦听器不断将数据同步到客户端应用程序。它提供了对移动设备和Web的离线支持,因此我们可以创建响应性应用程序,无论网络延迟或Internet连接如何,它们都可以正常工作。
Cloud Firestore还提供与Google Cloud Platform产品和其他Firebase(包括云功能)的无缝集成。
灵活性
Firestore数据模型支持灵活的分层数据结构。它将我们的数据存储在文档中,该文档被组织成一个集合。在Firestore中,文档可以包含复杂的嵌套对象,而不是子集合。
富有表现力的查询
在Firestore中,我们可以使用查询来检索特定的单个文档或检索集合中与我们的查询参数匹配的所有文档。我们的查询将过滤和排序结合在一起,可以包括多个链接的过滤器。查询性能与结果集的大小成正比,因为默认情况下对查询建立索引。
实时更新
Firestore与Firebase实时数据库非常相似。 Firestore还使用数据同步来更新任何已连接设备上的数据。它旨在有效地简化一次一次性获取查询。
离线支持
借助Cloud Firestore,我们可以缓存正在积极使用的应用程序数据。这样,即使设备处于离线状态,应用程序也可以读取,写入,查询和收听数据。当设备进入在线模式时,Cloud Firestore会将本地更改同步回它。
按比例设计
Cloud Firestore为我们提供了Google Cloud Platform最好的基础架构:自动化的多区域数据复制,原子批处理操作,强大的一致性保证和真实的交易支持。我们设计Cloud Firestore来处理来自世界上最大的应用程序中最艰巨的数据库工作负载。
Cloud Firestore是一个由云托管的NoSQL数据库,可通过我们的iOS,Android和Web应用程序直接通过本机SDK访问。除了REST和RPC API外,Cloud Firestore还可以在本机Node.js,Java, Python和Go SDK中使用。
使用Cloud Firestore的NoSQL数据模型后,我们可以将数据存储在具有值的字段映射的文档中。这些文档存储在称为集合的容器中。这些容器用于组织我们的数据并创建查询。文档支持多种数据类型,从简单的字符串和数字到复杂的嵌套对象。我们还可以在文档内创建子集合,并创建可扩展至数据库增长的分层数据结构。 Firestore数据模型支持最适合我们应用的数据结构。
此外,Cloud Firestore中的查询具有表现力,高效且灵活。创建浅层查询可以在文档级别上检索数据,而无需检索整个集合或任何嵌套的细分。为查询或游标添加排序,过滤和限制以对结果建立索引。向我们的应用程序添加实时侦听器,以保持数据运行。每次更新时都不会恢复我们的整个数据库。
每当我们的客户应用程序更改数据(仅获得新更改)时,将实时侦听器添加到我们的应用程序都会通过数据快照通知我们。
为了保护我们在Cloud Firestore中的数据访问,将Firebase身份验证和Cloud Firestore安全规则用于身份和访问管理(IAM)。
Firestore具有以下功能:
安全
对于数据,Cloud Firestore具有内置的安全访问控制。它可以通过配置语言进行简单的数据验证。
数据存储模式
Cloud Firestore支持数据存储区API。我们不需要对我们现有的数据存储区应用进行任何更改。我们可以预期具有类似的性能特征和价格,同时具有强大的稳定性。
自动升级
Google Analytics(分析)发布Cloud Firestore后不久,Cloud Datastore数据库将在本地进行升级。无需更改代码,我们的应用程序也不会停机。
ACID交易
Cloud Firestore支持事务,因此,如果事务中的任何操作失败(并且无法撤回),则整个事务都会失败。
多区域复制
借助自动多区域复制和强大的稳定性,即使在灾难发生时,我们的数据也是安全可用的。
强大的查询引擎
Cloud Firestore允许我们对NoSQL数据运行复杂的查询,而不会降低性能。这使我们能够更灵活地构造数据。
专为云原生应用而构建
典型的工作负载包括移动和Web应用程序,这些工作负载与多用户,零售产品目录,IoT资产跟踪,社交用户配置文件和活动,通信以及游戏排行榜协作。