门户 0.5.3

Portal 0.5.3

Rolando Rodriguez维护。



 
依赖项
Firebase/Core>= 0
Firebase/Firestore>= 0
Firebase/Auth>= 0
Firebase/Storage>= 0
Firebase/Analytics>= 0
 

Portal 0.5.3

  • 作者:
  • rorodriguez116

Portal

Version License Platform

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 文件。