一尘不染

在Firestore查询中实施OR-Firebase Firestore

javascript

我正在尝试在Firestore查询中实现逻辑OR运算符。

db.collection('users').where('company_id', '==', companyId)
                          .where('role', '==', 'Maker')
                          .where('role', '==', 'Checker')
                          .where('role', '==', 'Approver')
                          .get().then(function(adminsSnapshot){


             //Some processing on dataSnapshot
})

但这不是实现OR的正确方法。

我希望所有具有“制造商,检查者或批准者”角色的用户。

如何在Firestore查询中实施OR?Doc中没有任何内容。


阅读 323

收藏
2020-05-01

共1个答案

一尘不染

编辑(2019年11月) 现在,CloudFirestore支持“IN”查询(公告),该查询使您可以执行一种OR查询,以查找具有相同字段中几个值之一的文档。

例如,上面的查询:

db.collection('users')
  .where('company_id', '==', companyId)
  .where('role', 'in', ['Maker', 'Checker', 'Approver']);

原始答案

CloudFirestore中没有“或”查询。如果要在单个查询中实现此目的,则需要一个单个字段,例如maker_or_checker_or_approver:true

当然,您始终可以执行三个查询并将其加入客户端。

2020-05-01