我正试图弄清楚如何使用Geofire查询过滤器.假设我有不同类别的餐馆.我想将该类别添加到我的查询中.我该怎么做?
我现在的一种方法是使用Geofire查询密钥,通过每个密钥运行for循环并获取餐厅,并将相应的餐厅插入阵列.这些似乎效率低下.还有其他方法可以解决这个问题吗?
理想情况下,我将获得过滤后的结果,并且只在每个项目即将显示时加载它们.
干杯!
Firebase查询只能按一个条件进行过滤.Geofire已经做了一些"魔术",允许它在经度和纬度上进行过滤.可能会在该等式中添加另一个属性,但远远超出Geofire默认处理的属性.请参阅GeoFire:如何在查询中添加额外条件?
如果您一次只想访问一个类别,则可以将餐厅放在每个类别的顶级节点中,并将Geofire指向一个类别.
/category1 item1 g: "pns0h0mf2u" l: [-53.435719, 140.808716] item2 g: "u417k3dwub" l: [56.83069, 1.94822] /category2 item3 g: "8m3rz3s480" l: [30.902225, -166.66809] /items item1: ... item2: ... item3: ...
在上面的例子中,我们有两个类别:category1
有2个项目category2
,只有1个项目.对于每个项目,我们都会看到Geofire使用的数据:geohash以及经度和纬度.我们还保留了这3个项目的其他属性的单个列表.
但更常见的是,您只需在客户端代码中执行额外过滤.如果您担心它的性能:测量它,共享代码,JSON数据和测量.