Android 限制从GeoFire查询的项目数

Android 限制从GeoFire查询的项目数,android,firebase,geofire,Android,Firebase,Geofire,我在同一个地方有很多条目。我只想使用Geofire获取最新添加的10个项目。我知道使用Query.limitToLast()使用firebase可以很容易地做到这一点,但我不知道如何使用Geofire做到这一点 如果不可能,您是否有我可以应用的解决方法?无法限制Geofire的密钥数量:它将返回属于您查询范围的所有密钥 我唯一能想到的是,如果附近已经有其他物品,就不要插入物品。在这种情况下,在写入数据库时,您实际上是在对项目进行聚类。无法限制Geofire中的键数:它将返回属于您查询范围的所有键

我在同一个地方有很多条目。我只想使用Geofire获取最新添加的10个项目。我知道使用Query.limitToLast()使用firebase可以很容易地做到这一点,但我不知道如何使用Geofire做到这一点


如果不可能,您是否有我可以应用的解决方法?

无法限制Geofire的密钥数量:它将返回属于您查询范围的所有密钥


我唯一能想到的是,如果附近已经有其他物品,就不要插入物品。在这种情况下,在写入数据库时,您实际上是在对项目进行聚类。

无法限制Geofire中的键数:它将返回属于您查询范围的所有键


我唯一能想到的是,如果附近已经有其他物品,就不要插入物品。在这种情况下,您实际上是在向数据库写入数据时对项目进行聚类。

对此只有一种解决方案:

您应该以小半径开始查询

每次到达onGeoQueryReady()(“所有数据都已加载”),都会使用.setRadius(r)将半径增加一小部分geoquery,直到达到所需的限制


基于此

只有一种解决方案:

您应该以小半径开始查询

每次到达onGeoQueryReady()(“所有数据都已加载”),都会使用.setRadius(r)将半径增加一小部分geoquery,直到达到所需的限制


基于此

看来GeoFire中没有这样的方法来限制项目数量,只有半径限制。如果要获取最新添加的项目,可以在
项目
节点中使用FirebaseQuery,而不是在
geofire
节点中,这取决于具体情况。看起来没有这样的方法来限制geofire中的项目数,只有半径。如果要获取最新添加的项目,可以在
项目
节点中使用FirebaseQuery,而不是在
geofire
节点中,这取决于具体情况。问题是,这些项目是消息,即使它们位于同一位置,也需要全部插入。。。我不在乎的是老消息(我不认为我的用户会对50多条老消息感兴趣)。。。我发现使用GeoFire是不可能做到这一点的,我正试图找到一种解决方法或方法。不幸的是,我没有成功。您还有其他建议吗?解决方法:我指的是涉及geofire以外的其他事项,例如,将另一个表保存到firebase并使用它限制geofire查询是否可行?看起来,返回值是根据创建时间排序的。如果可以颠倒顺序,我将在项目数等于50时删除侦听器。有没有办法颠倒创建顺序?问题是,这些项目都是消息,即使它们在同一个位置,也需要全部插入。。。我不在乎的是老消息(我不认为我的用户会对50多条老消息感兴趣)。。。我发现使用GeoFire是不可能做到这一点的,我正试图找到一种解决方法或方法。不幸的是,我没有成功。您还有其他建议吗?解决方法:我指的是涉及geofire以外的其他事项,例如,将另一个表保存到firebase并使用它限制geofire查询是否可行?看起来,返回值是根据创建时间排序的。如果可以颠倒顺序,我将在项目数等于50时删除侦听器。有没有办法扭转创造的顺序?