使用 Geofire 从 Firebase 查询特定节点?
Query specific nodes from Firebase using Geofire?
最近怎么样?
我在 Firebase 中有以下数据结构:
reports
.XbCacF7tHosOZxxO(child generated by auto-id)
..userId: "XvSjDkLsaA8Se"
..message: "Text goes here"
..latitude: "30.123131"
..longitude: "50.3313131"
.Yoa7HsgTuWm97oP(child generated by auto-id)
..userId: "XvSjDkLsaA8Se"
..message: "Text goes here 2"
..latitude: "30.99999"
..longitude: "50.99999"
users
.XvSjDkLsaA8Se
..name: "John"
..email: "john@email.com"
该应用的理念是用户可以制作多个 "reports"。
将来,如果我有数百个 "reports",我不希望它使我的查询过载。所以我试图找到一种使用 Geofire 查询的方法。
我的问题是:有什么方法可以使用 Geofire 的半径特征和 [=25= 的纬度和经度来获取我附近的 "reports" ]?
谢谢!
我刚刚找到了一种方法。
我必须在创建报告时使用 Auto Id 生成的相同 ID 保存我的 Geofire 节点。
我的应用在 Firebase 上保存数据的功能:
//Save data to Firebase Database
let key = report.childByAutoId().key
report.child(key).setValue(dataToSaveInFirebase)
//Save data to Geofire node
let userLocal = database.child("reports_locations")
let geoRef = GeoFire(firebaseRef: userLocal)
let location = CLLocation(latitude: self.localUser.latitude, longitude: self.localUser.longitude)
geoRef?.setLocation(location, forKey: key)
希望对其他人有所帮助
最近怎么样?
我在 Firebase 中有以下数据结构:
reports
.XbCacF7tHosOZxxO(child generated by auto-id)
..userId: "XvSjDkLsaA8Se"
..message: "Text goes here"
..latitude: "30.123131"
..longitude: "50.3313131"
.Yoa7HsgTuWm97oP(child generated by auto-id)
..userId: "XvSjDkLsaA8Se"
..message: "Text goes here 2"
..latitude: "30.99999"
..longitude: "50.99999"
users
.XvSjDkLsaA8Se
..name: "John"
..email: "john@email.com"
该应用的理念是用户可以制作多个 "reports"。
将来,如果我有数百个 "reports",我不希望它使我的查询过载。所以我试图找到一种使用 Geofire 查询的方法。
我的问题是:有什么方法可以使用 Geofire 的半径特征和 [=25= 的纬度和经度来获取我附近的 "reports" ]?
谢谢!
我刚刚找到了一种方法。
我必须在创建报告时使用 Auto Id 生成的相同 ID 保存我的 Geofire 节点。
我的应用在 Firebase 上保存数据的功能:
//Save data to Firebase Database
let key = report.childByAutoId().key
report.child(key).setValue(dataToSaveInFirebase)
//Save data to Geofire node
let userLocal = database.child("reports_locations")
let geoRef = GeoFire(firebaseRef: userLocal)
let location = CLLocation(latitude: self.localUser.latitude, longitude: self.localUser.longitude)
geoRef?.setLocation(location, forKey: key)
希望对其他人有所帮助