GeoFireX-Swift
此框架帮助您使用 geohash 从 Firebase 获取几何数据。基本逻辑与 GeoFireX 相同,由 codediodeio 提供。
示例
要运行示例项目,克隆仓库,并首先从 Example 目录运行 pod install
GeoFireX-Swift 查询结果以 Combine 返回,因此您必须创建一个订阅者才能获取结果。within() 创建 Publisher,您只需执行 sink() 就可以创建订阅者。
import Firebase
import Combine
import GeoFireX_Swift
let client = GeoFireClient()
let query = client.query("markers")
let center = FirePoint(geopoint: GeoPoint(latitude: 35.68123620000001, longitude: 139.7671248))
var result : [[String:Any]]!
let subscriber = query.within(center: center, radius: 1.5, field: "geography", opts: GeoQueryOptions(units: .kilometer, log: true))?.sink( receiveCompletion: { completion in
switch completion {
case .finished:
print(".sink() received the completion:", String(describing: completion))
break
case .failure(let anError):
print("received the error: ", anError)
break
}
}) { (dataList) in
result = dataList
}
要求
- iOS 13.0 及以上
- Combine
- Firebase
安装
GeoFireX-Swift 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中
pod 'GeoFireX-Swift'
运行单元测试
您必须设置 Firebase 模拟器以调用单元测试。官方指南在此
这里。
设置步骤
1. 安装 firebase-tool
$ npm install -g firebase-tools
2. 安装 Firebase 模拟器
$ firebase setup:emulators:firestore
3. 移动 Firebase 配置目录
$ mv firebase
4. 启动模拟器
$ firebase emulators:start --only firestore
5. 运行单元测试
功能特性
尚未实现
- Promise 绑定
- 将结果转换为 JSON
作者
许可证
GeoFireX-Swift 采用 MIT 许可证。更多信息请查看 LICENSE 文件。