Google发布文档数据库Firestore

Google发布了Cloud Firestore,它是用于移动、网络和服务器应用程序的文档数据库。

\\

去年我们曾报道过Google Firebase,它是一种用于移动和网络开发的数据库,提供实时的和离线的数据访问,与许多Google服务相集成。他们现在推出了一个“全新的”产品Cloud Firestore,它是一种云端的NoSQL数据库,用于移动、网络和服务器应用程序。它的主要特性有:灵活的数据模型、复杂的查询、实时数据更新、支持离线访问、跨区域伸缩性、强大的一致性、批量操作、支持事务以及与Google生态系统其他部分(包括Cloud Functions)的集成。除了REST和RPC API,Firestore还提供Android、iOS (Swift和Objective-C)、JavaScript(包括Node.js)、Java、Python和Go的SDK。

\\

看来,Google发布Firestore是希望解决Firebase的一些缺点,现在也被称为实时数据库(Realtime Database)。两种解决方案的主要区别是:

\\
  • 数据模型。Realtime把数据放在JSON文件里,而Firestore引入了用集合来组织文档的概念。 \\
  • 离线。 Firestore为网络应用程序添加了离线支持,而Realtime只支持移动应用程序。 \\
  • 查询。由于用到了更好的数据模型,Firestore支持更复杂的和更快速的查询。 \\
  • 操作。Firestore可以组合原子批次中的多个操作,并重复事务直到完成。 \\
  • 区域。Realtime局限于单个地区中的一个区域,而Firestore可以跨越多个区域。 \\
  • 可扩展性。 Realtime局限于10万个连接数和每秒1000次写入。可以通过数据库分片获得更高性能。Firestore在必要时会自动突破这些限制。 \\
  • 安全。Firestore的数据访问控制更简单。\

关于数据模型,Firestore把数据存入以集合来组织的文档中。每一个文档包含键值对,还可以有相关联的子集合。除了标准数据类型,如布尔型(boolean)、整型(integer)、浮点型(float)、字节(byte)、字符串(string)、地理位置(geo point)、日期(date)和时间(time)以及空值(null),Firestore还支持数组和Map,后者是一组嵌套的对象。该数据库是无模式的。

\\

AngulaFire已经宣布支持Firestore,提供可观察的流(observable streams),可以集成到Angular应用程序中,包括动画、表单和路由器。Firestore目前正处于测试状态,使用它有一些限制。另外,它的定价与Realtime不同。

\\

查看英文原文:Google Announces Firestore, a Document Database

\\

感谢薛命灯对本文的审校。

\

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ,@丁晓昀),微信(微信号:InfoQChina)关注我们。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/454898.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

好的软件架构设计

什么是架构 前言:软体设计师中有一些技术水平较高、经验较为丰富的人,他们需要承担软件系统的架构设计,也就是需要设计系统的元件如何划分、元件之间如何发生相互作用,以及系统中逻辑的、物理的、系统的重要决定的作出。在很多公…

HihoCoder 1323 回文字符串

回文字符串 思路 动态规划&#xff1a; 可以有三种修改决策 将开头和结尾字符改成一样在开头加一个和末尾相同的字符在末尾加一个和开头形同的字符代码&#xff1a; #include <stdio.h> #include <iostream> #include <string.h> using namespace std; char …

python线程状态_Python线程

1. 线程基础1.1. 线程状态线程有5种状态&#xff0c;状态转换的过程如下图所示&#xff1a;1.2. 线程同步(锁)多线程的优势在于可以同时运行多个任务(至少感觉起来是这样)。但是当线程需要共享数据时&#xff0c;可能存在数据不同步的问题。考虑这样一种情况&#xff1a;一个列…

JavaScript中错误正确处理方式,你用对了吗?

JavaScript的事件驱动范式增添了丰富的语言&#xff0c;也是让使用JavaScript编程变得更加多样化。如果将浏览器设想为JavaScript的事件驱动工具&#xff0c;那么当错误发生时&#xff0c;某个事件就会被抛出。理论上可以认为这些发生的错误只是JavaScript中的简单事件。 本文将…

文件分割机

文件分割与合并 要求&#xff1a;实现对大文件的分割与合并。 按指定个数切&#xff08;如把一个文件切成10份&#xff09;或按指定大小切&#xff08;如每份最大不超过10M&#xff09;&#xff0c;这两种方式都能够。 程序说明&#xff1a; 文件分割&#xff1a;把一个文件分割…

mysql pow函数怎么用_pow函数怎么用

PHP pow函数表示指数表达式。pow函数怎么用&#xff1f;php pow()函数 语法作用&#xff1a;pow()函数的作用是将一个数进行n次方计算后返回语法&#xff1a;pow(X,Y);参数&#xff1a;X表示要做处理的数字Y表示指定n次方中的n数值说明&#xff1a;返回X的Y次方幂&#xff0c;如…

【IntelliJ IDEA】添加一个新的tomcat,tomcat启动无法访问欢迎页面,空白页,404

第一部分&#xff0c;添加一个tomcat 1.先把Toolbar 和 Tool Buttons显示出来 2.选择Edit Configurations 3.添加一个新的tomcat server进来 解决no artifacts configured问题&#xff0c;就是没有项目加入里面 先添加一个没有的项目 启动之后找不到 页面 第二部分&#xff0c…

回文数-时间变换-判断邮箱

class huiwenshu public class huiwenshu {public static void main(String[] args) {System.out.println("输入...");Scanner in new Scanner(System.in);String number in.next();boolean flag true;for(int i0;i<number.trim().length()/2;i){if(!String.va…

mac eclipse tomcat mysql_mac下使用eclipse+tomcat+mysql开发 j2ee(一)

在这里是使用eclipse&#xff0b;tomcat&#xff0b;mysql的方式。1、软件下载(1) eclipse我使用的是mac&#xff0c;因为本人是苹果客户端开发者&#xff0c;所以目前只有苹果机器了。首先下载eclipse for mac&#xff0c;选择mac 64位&#xff0c;下载eclipse-jee-kepler-SR1…

社交系统ThinkSNS-plus(TS+)V1.0发布!

2019独角兽企业重金招聘Python工程师标准>>> 需要购买源码的同志们&#xff0c;依然随时可以联系我们手机&#xff1a;18108035545&#xff08;同微信&#xff09;&#xff1b;电话&#xff1a;028-82884828 &#xff1b;QQ&#xff1a;3298713109&#xff1b; 从决…

《软件架构设计》一书目录

第一部分 软件架构概念与思想篇 1 第1章 解析软件架构概念 3 1.1 软件架构概念的分类 3 1.1.1 组成派 4 1.1.2 决策派 5 1.2 软件架构概念大观 5 1.2.1 Booch、Rumbaugh和Jacobson的定义 5 1.2.2 Woods的观点 6 1.2.3 Garlan和Shaw的定义 6 1.2.4 Perry和Wolf的定义 …

.net 读取mysql数据库配置文件_.NETCore添加及读取默认配置文件信息

这里的默认配置文件指的是项目中的appsettings.json文件&#xff0c;我们可以把一些配置信息保存在里面&#xff0c;比如数据库连接信息。来吧&#xff0c;看例子&#xff1a;1、先在appsettings.json文件中写入数据库的连接信息&#xff1a;{"Logging": {"LogL…

年龄层统计SQL

-- 处理名单丢失SELECT u.user_id u_userid,o.user_id o_userid,o.* FROMtb_gh_orders o LEFT JOIN tb_gh_user u ON o.user_id u.user_id WHERE o.course_id 128 AND o.order_state 1 ;-- 年龄段统计SELECT T1.*,CONCAT(LEFT (T1.C1 / T2.C2 * 100, 5), %) P FROM(SELECT C…

h5 img js 点击图片放大_H5实现移动端图片预览:手势缩放, 手势拖动,双击放大......

查看示例效果&#xff1a;一、功能介绍图片预览主要有以下几个功能点组成&#xff1a;监听图片点击事件&#xff0c;进入图片预览模式自定义手势事件, (双指缩放&#xff0c;滑动&#xff0c;双击。。。)监听图片手势事件&#xff0c;通过 transform-matrix 实现图片的各种变换…

[转载]建立团队沟通协作工作方式

很多初创团队、以及刚开始尝试敏捷的团队&#xff0c;没有工作协议的概念&#xff0c;热热闹闹&#xff0c;混混乱乱。本文介绍了关于工作协议的What, Why, Who, When, 以及How。 What:什么是工作协议 工作协议&#xff1a;由团队共同商议&#xff0c;达成一致遵守的一组规则、…

私有云促进企业管理变革 助力企业快步前行

在全球经济迅速发展和科学技术突飞猛进的情况下, 无论是制造型企业还是服务型行业&#xff0c;企业数量都在迅速增加,产品和服务质量也日趋完善。这必然导致一个结果——企业间的竞争更加激烈、产品的同质化现象日益明显。在这样的大背景之下, 再伴随着现代管理和营销理论的不断…

linux安装自带mysql吗_Linux下安装mysql

前提下必须要有这三个文件夹A.jpgB.jpg还要安装这两个软件&#xff1b;直接百度官网即可&#xff1b;先通过Xftp6这个软件&#xff0c;编译文件夹&#xff0c;C.jpg搭建mysql1.查看CentOS自带的mysqlrpm -qa | grep mysql2.卸载CentOS自带的mysqlrpm -e --nodeps 要卸载的软件3…

Android深入源代码分析理解Aidl总体调用流程(雷惊风)

2017年開始上班的第一天。老不想工作了&#xff0c;假期感觉还没開始就已经结束了&#xff0c;唉&#xff0c;时间就是这样&#xff0c;新的一年開始了&#xff0c;尽管非常不想干正事&#xff0c;没办法&#xff0c;必须干起来。由于后边的路还非常长&#xff0c;距离六十岁还…

(转载)UI接口分层自动化测试框架设计思想

阅读本小节&#xff0c;需要读者具备如下前提条件&#xff1a; 1. 掌握一种编程语言基础&#xff0c;如java、python等。 2. 掌握一种单元测试框架&#xff0c;如java语言的testng框架、python的unittest框架。 3. 掌握目前主流的UI测试框架&#xff0c;移动端APP测试框架Ap…

如何提高阅读源代码的效率 .

如何提高阅读源代码的效率 记得在开源流行之前&#xff0c;我看过的代码紧限于所参与的项目&#xff0c;能有个几万行就不错哩。后来很多优秀开源项目都相继蹦出来了&#xff0c;阅读的代码量那叫一个大呀&#xff01;不得不看。我现在掉到android这个大坑里&#xff0c;每天都…