【发布时间】:2016-03-24 16:30:20
【问题描述】:
我正在尝试弄清楚如何使用 Geofire 进行过滤器查询。 假设我有不同类别的餐厅。我想将该类别添加到我的查询中。我该怎么办?
我现在的一种方法是使用 Geofire 查询键,通过每个键运行 for 循环并获取餐厅,然后将适当的餐厅插入到数组中。 这些似乎效率很低。有没有其他方法可以解决这个问题?
理想情况下,我将获得过滤后的结果,并且仅在它们即将显示时加载每个项目。
干杯!
【问题讨论】:
-
Firebase 查询只能按一个条件过滤。 Geofire 已经做了一些“魔术”来允许它同时过滤经度和纬度。向该等式添加另一个属性可能是可能的,但远远超出了 Geofire 默认处理的范围。见stackoverflow.com/questions/34084347/…(我认为是重复的)。
-
好的,那么您将如何按其他条件过滤它?
-
这取决于:如果您甚至只想一次访问一个类别,您可以将餐厅放在每个类别的顶级节点中,并将 Geofire 指向一个类别。但更常见的是,您只需在客户端代码中进行额外的过滤。如果您担心它的性能:测量它,共享代码、JSON 数据和测量结果。
-
@FrankvanPuffelen 您如何将 Geofire 归为一类?您的意思是从 geofire 中查询键并检查每个键是否属于该类别?
-
不。只需为每个类别拥有单独的顶级键,您可以在其下拥有该类别中项目的地理数据。 IE。
/category1/items...和/category2/items...等。实际项目数据本身可以保存在单个全局/共享/items中。
标签: firebase firebase-hosting geofire