这个问题对于 SO (IMO) 来说有点离题,并且(有点)征求意见,但它可能值得一个高层次的回答。我每天都使用这两个平台。
Core Data 和 Firebase 是两个不相关的平台,用于(管理和)存储数据;在不了解您的用例的情况下,很难直接比较它们。
CD 是一个框架,用于为您的应用程序中的对象建模。它是数据存储的“前端”,其中“后端”可以是 SQL、平面文件、plist 等。它更像是一个用户概念,将数据本地存储在设备上(它具有云功能,但这是一个不同的主题)。
另一方面,Firebase 是一种实时的、事件驱动的、基于云的、支持多用户的 NoSQL 存储。虽然它提供离线持久性,但这确实适用于当设备暂时与互联网断开连接时需要与数据交互的情况。
这是不正确的:
关于它无法过滤和排序的 firebase 文档
同一时间
但是,您的 Firebase 结构取决于您想从中获得什么 - 如果结构正确,则可以同时以各种非常强大(和最有效)的方式对其进行过滤和排序。
Core Data 确实是一项令人难以置信的技术,在对象之间建立关系非常简单,并且具有类似 SQL 的查询来检索数据。
如果您正在寻找利用本地存储的数据库 - 请使用 Core Data 或其他在本地非常强大的数据库,例如 Realm、MySql 和其他一些数据库。
如果您想拥有基于云的、多用户、事件驱动的存储,Firebase 是一个非常强大的竞争者(Realm 也是另一个选择)
我建议构建一个非常简单的待办事项类型的应用程序并使用 Firebase 进行存储,然后使用核心数据构建另一个。应该只需要几个小时的工作,但它确实会给你一些很好的基本经验 - 你可以从那里做出更明智的决定。