【发布时间】:2018-06-26 04:49:12
【问题描述】:
我正在开发一个以 firestore 作为数据库的 Angular 项目。在数据库中,我存储了一个名为 uid 的文档,它是一个 uid 数组。我如何查询它们。我搜索了很多,但所有建议都与 firebase 和不使用 Firestore。
【问题讨论】:
-
我如何查询他们这是一个奇怪的问题。
标签: angular typescript google-cloud-firestore
我正在开发一个以 firestore 作为数据库的 Angular 项目。在数据库中,我存储了一个名为 uid 的文档,它是一个 uid 数组。我如何查询它们。我搜索了很多,但所有建议都与 firebase 和不使用 Firestore。
【问题讨论】:
标签: angular typescript google-cloud-firestore
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 的。
您可以尝试按照文档中的建议制作值映射。这在大多数情况下都有效,除非您在单个文档中存储超过 10k 的用户 uid,否则您将在 firestore 的某些限制下运行。
https://firebase.google.com/docs/firestore/quotas
每个文档的最大索引条目数
20,000
索引条目的数量是以下各项的总和 文件:
The number of single-field index entries The number of composite index entriesCloud Firestore 自动创建两个单字段索引条目 对于每个字段,一个在升序索引中,一个在降序索引中 索引。
考虑到20,000的限制,每个文档最多可以索引 10,000 个字段减去文档的复合索引条目数。
【讨论】: