GCP Firestore阵列容器意外行为

时间:2019-09-30 08:28:52

标签: javascript firebase google-cloud-firestore

使用here文档中指定的array-contains对Firestore集合运行复合查询:

这是我的查询:

db.collection(COLLECTION_NAME)
  .where('organization.id', '==', orgId)
  .where('type', '==', type)
  .where('employeeIds', 'array-contains', employeeId)
  .get()

这不会返回匹配项。您知道array-contains是否只能单独使用而不能与其他AND过滤器一起使用吗?

关于此的明确文档和eaxmples很少。

最佳

1 个答案:

答案 0 :(得分:1)

  

这不会返回匹配项。您知道数组容器是否只能单独使用,而不能与其他AND过滤器一起使用吗?

array-contains与其他相等的==运算符组合在一起没有任何错误。您只能array-contains一次使用 ,但是可以根据需要链接任意数量的相等函数。如果您的db.collection(COLLECTION_NAME)指向正确的位置并且orgIdtypeemployeeId保持正确的值,则查询应该可以正常工作。而且,在大多数情况下,这种查询不起作用,因为许多开发人员尝试对结果进行排序。在这种情况下,请记住需要使用index