如何使用带有 Swift 的 Geofire 来存储来自一个模拟器的位置,然后在另一个模拟器中显示该位置。
How to use Geofire with Swift to store location from one simulator and then show the location in another simulator.
我正在使用 Swift 构建一个 iOS 来共享位置。有谁知道如何将 Geofire 与 Swift 一起使用来存储一个模拟器的位置,然后在另一个模拟器中显示存储的位置?
非常感谢。
首先尝试使用 cocopods 如下,
pod 'Firebase', '~>4.0'
pod 'Firebase/Auth'
pod 'Firebase/Database'
pod 'Firebase/Storage'
pod 'GeoFire', :git => 'https://github.com/firebase/geofire-objc.git'
使用以下代码从 Geofire 设置和获取位置。
struct FndDatabase {
static let LOCATION = Database.database().reference().child("userlocation")
static let GEO_REF = GeoFire(firebaseRef: LOCATION)
}
func setUserLocation(location: CLLocation) {
let user = Auth.auth().currentUser?.uid //userid for the logged in user
if let uid = user {
FndDatabase.GEO_REF?.setLocation(location, forKey: uid)
}
}
func getLocation() -> CLLocation? {
var loc: CLLocation?
if let uid = Auth.auth().currentUser?.uid {
FndDatabase.GEO_REF?.getLocationForKey(uid, withCallback: { (location, err) in
if err != nil {
print( "Error getting Userlocation from Geofire \(err.debugDescription)")
} else {
print( "UserLocation is available \(location.debugDescription)")
loc = location
}
})
}
return loc
}
如果您看到此错误 'FirebaseDatabase/FirebaseDatabase.h' 找不到文件。
然后这样做,select FirebaseDatabase.framework 从 pods 和 link 到 Geofire,如图所示
示例代码上传至:https://github.com/ledwinson/firebasegeo
我正在使用 Swift 构建一个 iOS 来共享位置。有谁知道如何将 Geofire 与 Swift 一起使用来存储一个模拟器的位置,然后在另一个模拟器中显示存储的位置?
非常感谢。
首先尝试使用 cocopods 如下,
pod 'Firebase', '~>4.0'
pod 'Firebase/Auth'
pod 'Firebase/Database'
pod 'Firebase/Storage'
pod 'GeoFire', :git => 'https://github.com/firebase/geofire-objc.git'
使用以下代码从 Geofire 设置和获取位置。
struct FndDatabase {
static let LOCATION = Database.database().reference().child("userlocation")
static let GEO_REF = GeoFire(firebaseRef: LOCATION)
}
func setUserLocation(location: CLLocation) {
let user = Auth.auth().currentUser?.uid //userid for the logged in user
if let uid = user {
FndDatabase.GEO_REF?.setLocation(location, forKey: uid)
}
}
func getLocation() -> CLLocation? {
var loc: CLLocation?
if let uid = Auth.auth().currentUser?.uid {
FndDatabase.GEO_REF?.getLocationForKey(uid, withCallback: { (location, err) in
if err != nil {
print( "Error getting Userlocation from Geofire \(err.debugDescription)")
} else {
print( "UserLocation is available \(location.debugDescription)")
loc = location
}
})
}
return loc
}
如果您看到此错误 'FirebaseDatabase/FirebaseDatabase.h' 找不到文件。
然后这样做,select FirebaseDatabase.framework 从 pods 和 link 到 Geofire,如图所示
示例代码上传至:https://github.com/ledwinson/firebasegeo