Nora是用于与FirebaseDatabase和FirebaseStorage一起工作的Firebase抽象层。
别再花那么多时间清理视图控制器和编写可重用的Firebase代码了。
让Nora为您处理这些。您的时间应该花在您最擅长的事情上。编写出色的Apps!
简单来说,与Firebase一起工作变得容易多了。
安装
CocoaPods推荐
pod 'Nora'
示例
使用FirebaseDatabase
在设置目标后简单发出请求。
let database = DatabaseProvider<Users>()
database.request(.getUser(id: "1")) { result in
switch result {
case .success(let response):
let snapshot = response.snapshot
case .failure(let error):
print(error.localizedDescription)
}
}
数据库响应解码
为自定义类型提供JSON初始化器,轻松转换数据库响应
let database = DatabaseProvider<Users>()
database.request(.getUser(id: "1")) { result in
switch result {
case .success(let response):
let user = try? response.mapTo(User.init)
case .failure(let error):
print(error.localizedDescription)
}
}
使用FirebaseStorage
let storage = StorageProvider<Avatars>()
let avatarData = Data()
var meta = FIRStorageMetadata?
storage.request(.upload(avatarData, meta)) { result in
switch result {
case .success(_):
print("Upload Success!")
case .failure(let error):
print(error.localizedDescription)
}
}
文档(进行中)
参与进来
您可以通过多种方式为这个项目做出贡献,而不仅仅是代码
- 改进README
- 改进文档
- 报告错误
- 新功能建议
- 回答问题
我们真心鼓励每个人参与开源。
您的反馈一直受到欢迎,非常感激!
无论您的经验水平如何。
您永远不会因为意见而受到贬低。所以抓住机会,发起一个pull request,或者提交那个问题!
灵感
该项目受到Swift中的网络抽象层Moya的启发。
如果您正在使用传统的网络,请查看他们的项目!
许可证
Nora遵循MIT许可发布。详细信息请查看LICENSE.md。