如何将 iOS 应用程序连接到 Google 云 SQL?

How do I connect an iOS app to Google Cloud SQL?

我一直在使用 Cloud Firestore 构建我的数据库,因为这是最容易实现的。然而,Firestore 的查询能力对于我想要构建的东西来说是不够的,主要是因为它无法处理多个字段上的查询不等式。我需要一个 SQL 数据库。

我设置了一个 Google Cloud SQL 实例。集成比 Firebase 难得多,你只需要添加一个 Cocoapods Pod。根据我的研究,我似乎需要设置一个云 SQL 代理,尽管如果有更简单的连接方法,我会很高兴听到它。

本质上,我需要一种方法让 iOS 上的客户端读取和写入 SQL 数据库。云 SQL 似乎是最好的、最具可扩展性的选择(尽管我愿意听取易于实施的替代方案)。

您可能不想将应用程序配置为依赖于直接连接到 SQL 数据库。 Firestore 是一个高度可扩展的数据库,可以处理数以千计的连接 - MySQL 而 Postgres 不能完全扩展。

相反,您应该考虑构建可用于查询数据库和 return 格式化结果的简单前端服务。以这种方式构建有很多好处,包括能够进一步优化或分发您的查询。 Google AppEngine and Google Cloud Functions 都可以用来快速建立这样的服务,并且都提供到云的简单连接选项 SQL。

我发现使用 Firestore 查询最适合您的前端需求。使用嵌套子集合,ref 属性 或 document/collection id 关系可以为您提供前端所需的大部分内容。

您还可以使用以大多数主要语言编写的 Firebase 函数,这些函数对 Cloud SQL、Spanner 或任何其他 GCP 数据库实例执行无状态事务。

或者,您可以将容器映像部署到 Google Container Registry,然后轻松部署到 Kubernetes Engine、Compute Engine 或 Cloud 运行。每个都有权衡和优势。

使用 Firestore 的一个优势是可以轻松地将用户与身份验证 {uid} 绑定;保护后端的规则;在前端自定义声明基于角色的权限,并以极低的延迟访问实时流作为可观察对象。