FirebaseHelper 1.0.0

FirebaseHelper 1.0.0

测试已测试
Lang语言 SwiftSwift
许可证 MIT
发布上次发布2018年1月
SPM支持 SPM

Quan Vo 维护。



  • quanvo87 和 Wilson Ding

FirebaseHelper

Version
License
Platform

FirebaseHelper 是 Firebase 实时数据库的一个小封装,提供简化的方法用于获取、设置、删除和增加值。

功能

  • 设置 Firebase 实时数据库 Ref
  • 读取值(获取)
  • 写入/更新值(设置)
  • 删除值
  • 增加值

需求

Swift 4

安装

FirebaseHelper 通过 CocoaPods 提供。要安装
它,只需将以下行添加到您的 Podfile 中

pod 'FirebaseHelper'

用法

初始化 FirebaseHelper 实例

import Firebase
import FirebaseHelper

let firebaseHelper = FirebaseHelper(FirebaseDatabase.Database.database().reference())

FirebaseHelper(_ ref: DatabaseReference) 接收一个 DatabaseReference。通常你想要这个是数据库的根。

为了方便,您可以为项目添加以下内容

extension FirebaseHelper {
    static let main: FirebaseHelper = {
        FirebaseHelper(FirebaseDatabase.Database.database().reference())
    }()
}

现在您可以在项目的任何地方简单调用 FirebaseHelper.main 以访问此 FirebaseHelper 实例。

常见数据库操作

获取

示例

FirebaseHelper.main.get("users", "john123", "favoriteFood") { result in
    switch result {
      case .failure(let error):
        // handle error
      case .success(let data):
        // get string from data
    }
}

API

public func get(_ first: String, _ rest: String..., completion: @escaping (Result<DataSnapshot, Error>) -> Void)

get() 接收一个可变参数的子节点,这些节点将构建在初始化 FirebaseHelper 实例时初始化的 DatabaseReference 上。

回调返回一个 Result

public enum Result<T, Error> {
    case success(T)
    case failure(Error)
}

在这种情况下, TDataSnapshot。错误情况要么是因为传递了无效的子节点,要么是在数据库中出现了其他错误。

设置、删除、增加

set()delete()increment() 工作方式类似,但它们要么返回一个错误(如果发生),要么在无错误的情况下返回 nil

示例

// The first parameter is an `Any` that gets set at the specified path.
FirebaseHelper.main.set("pizza", at: "users", "john123", "favoriteFood") { error in
    if let error = error {
      // handle error
  }
}

FirebaseHelper.main.delete("users", "john123", "favoriteFood") { error in
    if let error = error {
      // handle error
  }
}

FirebaseHelper.main.increment(by: 5, "users", "john123", "favoriteFoodEatenThisMonth") {
    if let error = error {
      // handle error
  }
}

APIs

public func set(_ value: Any, at first: String, _ rest: String..., completion: @escaping (Error?) -> Void)

public func delete(_ first: String, _ rest: String..., completion: @escaping (Error?) -> Void)

public func increment(by amount: Int, at first: String, _ rest: String..., completion: @escaping (Error?) -> Void)

注意:您应该只 set 接受的值类型。请参阅 Firebase 文档

安全地创建一个 DatabaseReference

您经常需要调用更复杂的 FirebaseDatabase 函数,如构建查询并在其上调用 observe(_ eventType: with block:)FirebaseHelper 仍然可以帮助您做到这一点

let ref = try? FirebaseHelper.main.makeReference("users", "john123", "eatingHistory")
let handle = ref?.queryOrdered(byChild: "timestamp").queryLimited(toLast: 50).observe(.value) { data in
    // handle data
}

API

public func makeReference(_ first: String, _ rest: String...) throws -> DatabaseReference

makeReference 如果传递了无效的子节点,将引发错误。

合作者

许可证

FirebaseHelper 在 MIT 许可下可用。有关更多信息,请参阅 LICENSE 文件。