Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/121.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何按距离对最接近您的用户列表进行排序?_Ios_Swift_Uitableview_Firebase_Core Location - Fatal编程技术网

Ios 如何按距离对最接近您的用户列表进行排序?

Ios 如何按距离对最接近您的用户列表进行排序?,ios,swift,uitableview,firebase,core-location,Ios,Swift,Uitableview,Firebase,Core Location,一般来说,这是一个快速的问题,但如果有帮助的话:我正在Firebase中存储所有这些用户 因此,我试图对我的Firebase呼叫保持保守,我只是想知道,如果我想显示100个按距离排序的最近用户,最好的选择是什么 我很熟悉通过半径和核心定位计算距离,但我考虑的是后端。将所有用户从Firebase中拉出来,放入字典,并按坐标键对其进行排序,这真的是最好的方法吗?我找不到替代品 谢谢大家 答案有点奇怪。但这里你可以按值排序 您可以从远处为每个用户放置标签,然后写入firevase。运行应用程序或站点时

一般来说,这是一个快速的问题,但如果有帮助的话:我正在Firebase中存储所有这些用户

因此,我试图对我的Firebase呼叫保持保守,我只是想知道,如果我想显示100个按距离排序的最近用户,最好的选择是什么

我很熟悉通过半径和核心定位计算距离,但我考虑的是后端。将所有用户从Firebase中拉出来,放入字典,并按坐标键对其进行排序,这真的是最好的方法吗?我找不到替代品


谢谢大家

答案有点奇怪。但这里你可以按值排序

您可以从远处为每个用户放置标签,然后写入firevase。运行应用程序或站点时,可以更新标记。您只需添加到表格距离

这个例子会更清楚

查询将如下所示

const ref=firebase.database().ref('Distance')

您将得到一个按距离排序的列表。起初是最近的


我希望该示例将有助于解决web请求示例中的问题。我对迅捷不熟悉,非常感谢!因此,基本上,建议为每个用户设置一个距离对象,并让所有用户与它所属的用户层次结构保持距离?您可以说是。实施的机会很多。这取决于最终想要得到什么。这里最重要的是,以距离用户的形式发送数据。如果要将用户存储在Firebase数据库中,最好的方法是使用。此库使用地理哈希来允许在服务器上按距离进行高效查询。
ref.orderByChild('distanceFrend').limitToFirst(100).on('value', snap => { .... }