【问题标题】:How to access array of strings in firestore and query on them如何访问firestore中的字符串数组并查询它们
【发布时间】:2018-06-26 04:49:12
【问题描述】:

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

【问题讨论】:

  • 我如何查询他们这是一个奇怪的问题。

标签: angular typescript google-cloud-firestore


【解决方案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 的。

您可以尝试按照文档中的建议制作值映射。这在大多数情况下都有效,除非您在单个文档中存储超过 10k 的用户 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 个字段减去文档的复合索引条目数。

【讨论】:

    猜你喜欢
    • 2021-12-04
    • 2018-06-16
    • 2012-02-09
    • 1970-01-01
    • 2020-03-29
    • 2010-10-10
    • 2023-03-20
    • 2015-06-12
    • 2014-01-15
    相关资源
    最近更新 更多