Er-FirebaseHelper 0.0.2

Er-FirebaseHelper 0.0.2

Ersin Ergul 维护。



  • 作者:
  • Ersin Ergul

FirebaseHelper

Version License Platform

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

功能

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

要求

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() 的工作方式类似,但是当发生错误时会返回一个 Error 对象,否则返回 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
  }
}

API

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