我正在创建一个tableView,它将填充100公里范围内的所有附近用户 - 然后按其HighScore排序。
我正在使用的代码如下......
let geoFireUser = GeoFire(firebaseRef: DBProvider.instance.gameHighScoreRef)
self.circleQuery = geoFireUser?.query(at: currentUserCLLocation, withRadius: 100)
circleQuery?.observe(.keyEntered, with: { (key, location) in
let queryRef = DBProvider.instance.gameHighScoreRef.queryOrdered(byChild: "highScore").queryLimited(toLast: 100)
queryRef.observe(.childAdded, with: { (snapshot) in
let userNearbyData = UserData(snapshot: snapshot)
self.listOfNearbyUsers.append(userNearbyData)
self.listOfNearbyUsers.sort(by: {$0.highScore > $1.highScore})
})
})
}
我创建了一个分段控件,它将显示,GLOBAL LIST和NEARBY LIST(100km)。
目前在我的gameHighScoreRef中 - 只有3个唯一键(3个用户)。 我的Firebase结构也是如此 根 - > gameHighScore - > GeoFire,HighScore,用户名..
我的全球列表显示3个用户。 我的NEARBY LIST显示了9个用户。它应该只显示3个用户。
为了确保我的课程正常运行,我删除了geoFire CircleQuery并显示了3个用户。
如何调整我的代码以搜索100公里范围内的用户。然后按他们的HighScore排序?
非常感谢任何帮助。