如何在Firestore中访问字符串数组并对其进行查询

时间:2018-06-26 04:49:13

标签: angular typescript google-cloud-firestore

我正在使用Firestore作为数据库的一个有角项目。在数据库中,我存储了一个名为uid的文档,该文档是uid的数组。如何查询它们。我进行了很多搜索,但所有建议都与firebase和不在Firestore中。

1 个答案:

答案 0 :(得分:1)

更新2019年5月29日

您现在可以执行此操作。有一个array_contains查询: https://firebase.google.com/docs/firestore/query-data/queries#array-contains 您可以使用array_contains运算符基于数组值进行过滤。例如:

citiesRef.where("regions", "array-contains", "west_coast")

regions是一个字符串数组,上面的查询将仅返回该数组中具有“ west_cost”的文档。

===================

旧答案:

不幸的是你不能。从文档: https://firebase.google.com/docs/firestore/solutions/arrays

  

尽管Cloud Firestore可以存储阵列,但不支持   查询数组成员或更新单个数组元素。但是你   仍然可以通过利用其他功能来建模此类数据   Cloud Firestore。

您可以尝试按照文档中的建议制作值映射。在大多数情况下,这是可行的,除非您在单个文档中存储了超过1万个用户uid,而不是在firestore的某些限制下运行。

https://firebase.google.com/docs/firestore/quotas

  

每个文档的最大索引条目数

     

20,000

     

索引条目的数量是以下内容的总和   文件:

The number of single-field index entries
The number of composite index entries
     

Cloud Firestore自动创建两个单字段索引条目   对于每个字段,一个在升序索引中,一个在降序索引中   索引。

     

考虑到20,000个限制,每个文档最多可以索引   10,000个字段减去文档的复合索引条目数。