![]() |
1
211
使用 Firebase's Query API ,您可能会尝试:
但正如firebase的@robdimarco在评论中所说:
所以 我上面的代码不起作用 . 我知道有三种方法是可行的。 1。过滤服务器上的大部分内容,其余的在客户端上进行
你什么
可以
做的就是执行一个
2。添加合并要筛选的值的属性如果这还不够好,您应该考虑修改/扩展您的数据以允许您的用例。例如:您可以将genre+lead填充到一个单独的属性中,只用于此筛选器。
实际上,您正在用这种方法构建自己的多列索引,并可以使用以下命令进行查询:
大卫·伊斯特写了一篇 library called QueryBase that helps with generating such properties . 您甚至可以执行相对/范围查询,假设您希望允许按类别和年份查询电影。您将使用以下数据结构:
然后查询90年代的喜剧:
如果您需要过滤的时间超过一年,请确保按降序添加其他日期部分,例如。
一个属性中的值组合可以处理两个以上的值,但只能对复合属性中的最后一个值进行范围筛选。 它的一个非常特殊的变体是由 GeoFire library for Firebase . 这个库将一个位置的经纬度组合成一个所谓的 Geohash ,然后可用于在firebase上执行实时范围查询。 三。以编程方式创建自定义索引另一种选择是在添加这个新的查询api之前做我们都做过的事情:在另一个节点中创建一个索引:
可能还有更多的方法。例如,此答案突出显示了另一个树形自定义索引: https://stackoverflow.com/a/34105063 |
![]() |
2
41
我已经编写了一个个人库,允许您通过多个值进行排序,所有的排序都在服务器上完成。 Meet Querybase!querybase接受一个firebase数据库引用和一个要索引的字段数组。当您创建新记录时,它将自动处理允许多个查询的密钥生成。需要注意的是,它只支持直接等价(不小于或大于)。
|
![]() |
3
2
|
![]() |
4
0
这会奏效的。 |
![]() |
Noober · 为什么firestore不过滤并始终返回所有文档? 7 年前 |
![]() |
Sireini · 将静态数组搜索转化为可观察搜索 7 年前 |
![]() |
james watt · 搜索栏Ionic 3不工作 7 年前 |
![]() |
Stan · Angular RxJS-取消订阅mergeMap? 7 年前 |