激活离线模式时Core Data优于Firebase实时数据库有哪些优势?

BB1*_*119 5 core-data ios firebase firebase-realtime-database

我的问题可能看起来有点幼稚,但作为初学iOS开发人员,我开始认为Core Data可以被firebase实时数据库(或将来的firestore)替换.我在两个单独的项目中使用它们,并且在激活firebase中的离线功能后,我得到了相同的结果(即,数据被保存到设备而无需互联网连接).我想我在firebase文档中读到了一些关于它无法同时进行过滤和排序的内容,这可能意味着Core Data可以更方便地进行复杂查询.有一些高级开发人员对这个问题的看法会很棒.提前致谢.

Jay*_*Jay 8

这个问题对于SO(IMO)来说有点偏离主题,并且(有点)要求提出意见,但它可能值得一个高级答案.我每天都使用这两个平台.

Core Data和Firebase是用于(管理和)存储数据的两个不相关的平台; 在不了解您的用例的情况下直接比较它们很难.

CD是用于为应用程序中的对象建模的框架.它是数据存储的"前端",其中"后端"可以是SQL,平面文件,plist等.它更像是一个单一的用户概念,它将数据本地存储在设备上(它具有云功能,但这是一个不同的主题) ).

另一方面,Firebase是一个实时,事件驱动,基于云,多用户的NoSQL存储.虽然它提供了离线持久性,但实际上,当设备暂时与互联网断开连接时,您需要与数据进行交互.

这是正确的:

firebase文档关于它无法同时过滤和排序

但是,您的Firebase结构取决于您想要从中获取的内容 - 如果它的结构正确,则可以通过各种非常强大(和faaast)的方式同时对其进行过滤和排序.

核心数据实际上是一种令人难以置信的技术,对象之间的构建关系非常简单,并且具有类似SQL的查询来检索数据.

如果您正在寻找利用本地存储的数据库 - 请使用Core Data或其他本地强大的数据库,例如Realm,MySql和其他许多数据库.

如果你想拥有基于云,多用户,事件驱动的存储,Firebase是一个非常强大的竞争者(Realm也是另一个选择)

我建议构建一个非常简单的To-Do类型应用程序,并使用Firebase存储在一个中,然后使用Core数据构建另一个.应该只是几个小时的工作,但它真的会给你一些很好的基本经验 - 你可以从那里做出更明智的决定.