2017-05-05 16 views
0

iOS 용으로 Geofire을 사용합니다. 다음과 같은 문제에 직면했습니다. 저는 Geofire를 사용하여 현재 사용자 옆에있는 카드와 사용자를 얻습니다. 카드의 경우 결과는 정확하지만 사용자의 경우 Firebase Database의 데이터 구조가 카드와 사용자의 위치를 ​​저장하는 데있어 동일 하긴하지만 어떤 결과도 얻지 못합니다. 이 문제를 어떻게 해결할 수 있습니까?GFCircleQuery가 결과를 반환하지 않습니다.

내 구조 데이터

"cardLocation" : { 
    "-KjLxK0q39JnT2MZEalB" : { 
    ".priority" : "v17wefy8z", 
    "g" : "v17wefy8z", 
    "l" : [ *****, ****** ] 
    }, 
    "-KjM7_5sPkoruwoTvRzR" : { 
    ".priority" : "9q5c2ypf3", 
    "g" : "9q5c2ypf3", 
    "l" : [ ******, -****** ] 
    }, 
    "-KjNDq8nQ2Ffjr9M_1a9" : { 
    ".priority" : "9q59x2vc6", 
    "g" : "9q59x2vc6", 
    "l" : [ *******, -***** ] 
    } 
}, 

"userLocations" : { 
    "1Cix149ThIOG1ULPVjyy0LyTxbe2" : { 
    ".priority" : "87zc0d2j5", 
    "g" : "87zc0d2j5", 
    "l" : [ ******, -**** ] 
    }, 

답변

0

나는 올바르게 모델에 추가 속성을 추가하여 geofire를 사용하지 않았다. 이제는 CLLocation 만 추가하면됩니다.

let geofireRef = Database.database().reference().child(MainGateways.cardLocation.rawValue) 
       guard let geoFire = GeoFire(firebaseRef: geofireRef) else { return } 
       dispatchGroup.enter() 
       geoFire.setLocation(cardLocation, forKey: cardModelRef.key) { (error) in 
        commonError = error 
        dispatchGroup.leave() 
       }