Swifty Firebase API @ Ka-ching —第一部分

添加对可编码类型的支持

更新,2018年10月14日:

自撰写本文以来,这些博客文章中描述的概念已被分为两个开源框架,可以在这里找到:

ka-ching-as / FireSwift-Database
Firebase实时数据库的扩展,可以使用“ Codable” Swift类型。 github.com ka-ching-as / RxFireSwift-Database
Firebase实时数据库的RxSwift扩展— ka-ching-as / RxFireSwift-Database github.com

背景

Firebase实时数据库是构建应用程序的绝佳工具。 有很多文章介绍了使用Firebase的一些优点,因此,本篇文章不会对此进行详细介绍,而是假定您已经对该技术有一定的了解。

Firebase的iOS API当前是用Objective-C编写的,尽管这些API在Swift中表现得很好,但这确实意味着我们无法利用Codable支持之类的仅Swift功能。

这篇文章(以及随后的几篇文章)将探讨向Realtime Database API添加漂亮和“ Swifty”扩展的可能性。

总览

以下是有关这些帖子的概述:

  1. (本文)增加了对Codable类型的支持。
  2. 向数据库中的数据添加类型安全的路径
  3. (尚未发布)添加RxSwift扩展以将数据提供为Observables

动机

第一篇文章的动机是使您可以将存储在Realtime数据库中的数据视为模型对象,而不是纯数据。

在第二篇文章中,我们将摆脱容易出错的String路径到数据的使用。

第三篇文章的动机是这样的事实,即在如何通过Rx眼镜感知世界以及如何使用实时数据库API方面存在很大的重叠。 即,数据在两个概念中都被视为随时间变化的值。 让我们通过结合概念来利用这一点。

TL; DR

这篇文章的目标是能够将可Codable模型类型与Firebase Realtime Database API一起使用,如下所示: