根据距离在Firebase中搜索

Sta*_*ark 2 android firebase firebase-realtime-database

我正在将使用Mysql的应用程序迁移到firebase,并且设法将其几乎全部迁移,只是缺少搜索部分,我不太了解它是如何工作的。我正在尝试在Firebase中执行以下查询。

SELECT *, (6371 * acos( cos(radians(?)) * cos(radians(latitude)) * cos(radians(?) - radians(longitude)) + sin(radians(?)) * sin(radians(latitude)) )) AS distance FROM usuario ORDER BY distance
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

我想做的是将用户的纬度和经度传递给firebase,他返回给我所有订购最近到最远的用户。

注意:这与我在应用程序中使用的查询不同,我只是在google上找到该查询,不知道这项工作是否可行,但是您可以了解我要执行的操作。注意²:英语不是我的母语:P

Bob*_*der 5

您提供的示例SQL查询使用Firebase中不存在的SQL功能:使用表中每一行的列值来计算表达式,然后使用该表达式的值对查询结果进行过滤和排序的能力。

我看不到使用Firebase执行所需查询类型的方法。

您可能需要看一下Geofire库。我没有使用过它,它的功能似乎与邻近过滤有关,与您需要的按距离排序功能无关,但是也许您可以调整需求以利用它的功能。