我有一个功能可以获得所选用户的实时位置更新。
在该功能中,我需要从firebase调用所选用户的当前状态和历史记录。
所以,问题是当我启动我的观察员只进行位置更新时,它很好并且它很棒。 我从firebase观察者那里得到了值。
但是,当我打电话询问所选用户的当前状态和历史记录时,我的firebase实时观察者得到了延迟。
我不明白如何调用另一个firebase影响我们的实时观察员代码。
提出任何建议, 我尝试调度到后台获取当前状态/历史记录,但仍然没有运气。
让我无望而且无能为力。
加了: 我从同一节点获得当前状态和实时观察者。 那么,如果同一个节点正在观察,并且如果对同一节点进行另一个firebase调用,它是否会发生冲突,是否会发生冲突???
已更新
Firebase功能获取当前状态:
FIRDatabaseReference().child("personal").child(userUUID).child("realtime")
.observeSingleEvent(of: .value, with: { (snapshot) in
//print(snapshot.key)
if snapshot.exists(){
let location = LocationParser(dict: snapshot.value as! [String : AnyObject])?.location
completion(location)
}else{
completion(nil)
}
}){ (error) in
completion(nil)
debugPrint(error.localizedDescription)
}
Firebase功能,以观察位置(连续):
FIRDatabaseReference().child("personal").child(userUUID).child("realtime")
.observe(.value) { (snapshot:FIRDataSnapshot) in
print("\nOBSERVER FROM FIREBASE FIRED")
if let value = snapshot.value as? [String:AnyObject] {
if let location = LocationParser(dict: value)?.location {
//we cannot save location to our database
//sharedFirebaseManager.saveLocationHistoric(LocationParser(dict: value)!)
result(success(location))
}
}
}
问题:
我从同一个控制器调用两个,并且我看到连续的观察者延迟调用另一个firebase函数调用。 任何线索。