DynamoDB 是 Swift 应用程序的好选择吗? [关闭]

Posted

技术标签:

【中文标题】DynamoDB 是 Swift 应用程序的好选择吗? [关闭]【英文标题】:Is DynamoDB a good choice for a Swift application? [closed] 【发布时间】:2017-05-08 18:59:24 【问题描述】:

有各种各样的数据库可用。都戳了他们。我需要的是一个具有成本效益的唯一用户 ID,能够在没有 wifi 的情况下离线同步。并访问后端服务器记录(项目)。

iCloud、Realm、mysql、Firebase、DynamoDB 等。我在大多数方面都相当扎实,很想使用 DynamoDB,但我看到关于同步的文档为零,我想知道让每个用户都这么容易分配了一个唯一 ID,以及相关的 AWS 成本。

我正在使用 iCloud 或 Firebase,想知道 Swift 专业人士对我的需求有何看法。

感谢您的提示。 :-)

【问题讨论】:

在没有wifi的情况下同步离线? 是的。 Firebase 似乎很擅长这一点。这是一个智慧城市类型的应用程序,你可能在地下,离线,然后从地铁里跳出来,现在有了 wifi。 这并不是数据库真正的特性,而是你用来连接数据库的客户端的特性。它只是将数据保存到磁盘,直到连接再次可用。可以为您提到的任何数据库构建此功能。 是的,肯定能建,认为FB已经为你建好了。缩短开发时间。 【参考方案1】:

我使用了很多 Firebase 和一些 DynamoDB。两者都是值得尊敬的选择。

我会告诉你我为什么选择 Firebase 而不是 DynamoDB 的偏见,并让其他人给你另一个角度:

如果您只想根据键放置和获取值,那么 DynamoDB 非常棒。但是,它在查询和搜索方面非常有限。 Firebase 在可用性和速度方面表现出色。例如,如果您有一个用户数据库,您可以根据他们的子值(lastLoggedIn)进行查询,并选择今天刚刚登录的用户。如果此查询经常执行,您可以在此键上建立索引并加快此查询。在此处阅读更多信息:https://firebase.google.com/docs/database/rest/retrieve-data

Firebase 允许您轻松地为每个表/数据库定义安全规则。您也可以在 AWS 中为 DynamoDB 定义 IAM 角色,但我怀疑它们是否具有与 Firebase 一样多的灵活性。

Firebase 允许支持并发修改的事务:https://firebase.google.com/docs/database/web/read-and-write#save_data_as_transactions

如果您正在开发移动应用程序,推送通知很容易设置。

离线功能无需太多设置即可无缝集成到您的应用中:https://firebase.google.com/docs/database/web/offline-capabilities

我曾经对 Firebase 存有疑虑,但自从 Google 于 2014 年收购 Firebase,并在 2016 年 Google I/O (https://www.youtube.com/watch?v=tb2GZ3Bh4p8&vl=en) 上如此热烈地谈论它之后,我对它产生了信心。

哦,我是否说过 Firebase 上的 Blaze 计划在存储和计算方面都比 DynamoDB 便宜?

【讨论】:

嗨,leonardloo,感谢您的详细撰写。火力基地是。如果需要,让足够的 DynamoDB 工作正常,再做一个 AWS/Web 项目。对于这个,FB 效果很好。使用本教程,cmets 包含一些修复(使用 pod 文件),其他的设置、获取和运行都很简单。 raywenderlich.com/139322/firebase-tutorial-getting-started-2 我会对这两种计划进行比较,以确定哪种方案更便宜。 DynamoDB 有更慷慨的免费套餐。

以上是关于DynamoDB 是 Swift 应用程序的好选择吗? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

ServerLess的好伙伴——一些有用的NPM包

在AWS s3中保存图像

Dynamodb - 如何选择合适的 GSI 和 LSI

AWS batchGetItem NSInvalidArgumentException JSONKeyPathsByPropertyKey:无法识别的选择器

根据另一个字段中的值选择 Dynamodb 中的数据

通过 AWS AppSync 记录更新、删除到 AWS DynamoDB 的数据有问题吗?