Firestore-查询所有文档,其中哪个字段与列表中的值匹配(如SQL IN)

时间:2019-07-24 11:13:13

标签: firebase google-cloud-firestore

例如,我有一个图书集,每本书都有“体裁”字段。如何查询所有类型为“幻想”或“历史”的书籍?就像SQL SELECT * FROM book WHERE genre in ("fantasy", "historical")。我认为这是非常常见的SQL查询。

我在GitHub中发现了Selenium Webdriver Tutorial with JAVA: How to set up a TestNG maven based project from scratch个功能请求,但尚未解决。 Firestore this:“不支持逻辑或查询”。因此,我无法在Firestore中进行如此简单的查询吗?什么是解决方法?我应该分别查询每个流派并加入结果吗?

请注意,我发现了类似的问题,例如“如何通过一组ID获取多个文档?”,但不是有关自定义属性的问题。对于id,例如,在js admin sdk中有“ getAll()”方法。

1 个答案:

答案 0 :(得分:2)

您正确识别的Firestore不支持它。您可以发送两个单独的查询,然后在本地合并结果。不幸的是,这是需要这样做的方式。如果您的用例很简单,则发送两个单独的请求应该没问题。

但是,请查看firebase官方支持的rxfire软件包。请注意,它本身不支持or查询,但是在rxjs的帮助下,它使此类任务更易于管理。这是下面的链接摘录的内容:

  

Firebase提供实时流和异步回调以进行各种处理   在您的应用程序中很棒的东西。从一个实时流中获取数据   很简单,但是如果您想从另一个那里加入呢?   合并多个异步数据流会变得很复杂。在Firebase上,   我们想帮助简化事情,所以我们创建了一个新的JavaScript   库:RxFire。

指向介绍性博文的链接:RxFire