내 선수 친구의 최고 기록을 조회하는 내 아이폰 OS 프로젝트를 얻고있는 행운을 가지고 있지 작동하지 :중포 기지 queryOrderedByChild queryEqualToValue이
private func checkFriendsScores(fbid: Int64)
{
let users = ref.child("users")
let fbidQuery = users.queryOrderedByChild("FBID")
let friendIdNumber = String(fbid)
let queryFriend = fbidQuery.queryEqualToValue(friendIdNumber)
queryFriend.observeSingleEventOfType(.Value) { [unowned self](snapshot: FIRDataSnapshot!) in
self.updateFriendsScores(fbid, data: snapshot)
}
}
그 코드를 컴파일하고 잘 실행, 앱의 다른 부분은 노력하고 있습니다. 쿼리는 지정된 FBID를 가진 친구를 찾은 다음 updateFriendScores 함수를 실행하지만 해당 블록은 실행되지 않습니다.
{
"users" : {
"WhiPPS6AbcX6Xp2XQft29JZXR9G3" : {
"BK035" : [ null, 540, 466, 515, 576, 748, 1019, 765, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ],
"FBID" : 10208576492403564
},
"d0fT2ge6ALa6QUKFcRApiqjaJd82" : {
"BK018" : [ null, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646 ],
"BK035" : [ null, 631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ],
"FBID" : 1652501845074069
},
"o67iatcYLRbd2CrgkXGQWZNpmyC3" : {
"BK018" : [ null, 816, 715, 642, 690, 864, 745, 899, 858, 847, 1045, 1148, 1002, 1119, 833, 1067, 0, 0, 0, 0, 0 ],
"BK035" : [ null, 826, 620, 657, 673, 810, 1090, 804, 932, 931, 1079, 1007, 972, 1098, 1065, 927, 1582, 1195, 1265, 1366, 1548 ],
"FBID" : 1094051894000026
},
"yW5ntKW9pwYvwm2EyvJlGSTzm0M2" : {
"BK018" : [ null, 763, 457, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ],
"BK035" : [ null, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ],
"FBID" : 10153916083832933
}
}
}
어떤 아이디어 :
데이터는 같다?
Int64는 var를 처리하는 가장 좋은 방법이 아닐 수 있습니다. Swift에서 사용할 수있는 Any 'thing'에는 두 가지 유형이 있습니다. * Any *는 클래스, stuct 또는 enum 일 수 있으며 * AnyObject *는 클래스 유형 전용입니다. queryEqualToValue는 AnyObject가 필요하고 Int64는 클래스가 아니므로 AnyObject를 준수하지 않으므로 값 유형입니다. AnyObject는 Int를 포함하는 것처럼 보일 수 있지만 그 경우는 AnyObject가 암시 적으로 Int를 __NSCFNumber로 변환합니다.그래서 그것은 String이거나 Int로 변환 될 필요가 있습니다. let num = Int (fbid) 그리고 fbidQuery.queryEqualToValue (num) – Jay
@Jay thanks Jay. 귀하의 생각을 고려하여 대답을 편집했습니다. – adolfosrs