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 应用程序的好选择吗? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
AWS batchGetItem NSInvalidArgumentException JSONKeyPathsByPropertyKey:无法识别的选择器