Portal
Portal是FirebaseFirestore和FirebaseAuth的简单抽象层,它通过在核心处使用泛型自动地将文档快照解析到您的数据层模型,从而节省了大量工作。Portal还允许您使用FirebaseAuth通过非常易用的API进行用户登录和注册,同时在PortalAuth中创建其在您的数据库中的镜像表示,同时保持您指定的数据层模型。
要求
- iOS 12.0+
安装
Portal可以通过CocoaPods获得。要安装它,请在Podfile中简单添加以下行
pod 'Portal'
使用方法
Portal使用泛型来确定它应该使用哪个模型与数据库路径进行匹配,为此它在其核心处使用泛型。Portal使用的模型必须遵循PortalModel协议。
创建模型
让我们声明一个结构体Pet,它将成为本例中基础数据层模型的基类。
PortalModel 协议的唯一要求是声明一个只读的 portalIdentifier 变量。此变量将被 Portal 用于在与其唯一标识符匹配的路径处创建您的模型。
struct Pet: PortalModel {
var id: String
let name: String
let age: Int
var portalIdentifier: String {
return id
}
}
创建门户
要实例化一个新的 Portal,您需要指定它将使用什么模型,以及它在数据库中的路径。
let portal = Portal<Pet>(path: "pets")
门户事件
为了使用 Portal 的特性,您必须通过 .event 函数来访问它们。在本例中,我们将使用 .new 事件来创建一个新文档,其结构为类型为 Pet 的文档,并为 pets 路径存储在数据库中。
let portal = Portal<Pet>(path: "pets")
let myPet = Pet(id: "MyPetID", name: "Monchi", age: 3)
portal.event(.new(myPet)) { (result) in
switch result {
case .success: print("Success! Your data has been succesfully created")
case .failure(let error): print(error)
}
}
许可
Portal 可在 MIT 许可下使用。有关更多信息,请参阅 LICENSE 文件。