iOS firebase观察器延迟观察节点

时间:2017-08-18 12:27:59

标签: ios swift firebase

我有一个功能可以获得所选用户的实时位置更新。

在该功能中,我需要从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函数调用。 任何线索。

0 个答案:

没有答案